Skip to content

Cross SDK public API surface alignment for creating containers #1280

Description

Description of the task

Right now we have the following matrix of API support:

Capability Rust .NET Node
One-shot request model SandboxRequest
SandboxPolicy
SandboxRequest
SandboxPolicy
ContainerConfig
Run to completion run() Run()
RunAsync()
spawnSandboxAsync()
Native streaming spawn_sandbox() Spawn() SpawnSandbox / SpawnSandboxFromConfig – uses executables and not mxc_ffi foundation and returns either Node ChildProcess or IPty interface
State-aware lifecycle run_state_aware_json() ProvisionSandbox()
StartSandbox()
StopSandbox()
DeprovisionSandbox()
provisionSandbox()
startSandbox()
stopSandbox()
deprovisionSandbox()
State-aware streaming exec exec_sandbox() ExecInSandbox()
ExecInSandboxAsync()
execInSandbox()
execInSandboxAsync()
Attached state-aware exec exec_attached() ExecInSandboxAttached() Missing

What we want at the completion of this issue

All node rust SDKs should use in proc mxc_ffi shared library for their api calls. Node is now set up to use the mxc_ffi layer however, the public facing APIs need to be updated to call into them rather than the mxc executables. NOTE: rust can stay synchronous for v1 while the other SDKs can have their both synchronous and *Async functions.

Capability Rust .NET Node
One-shot request model SandboxRequestV1 SandboxRequestV1 SandboxRequestV1
Run to completion run() Run()
RunAsync()
Run()
RunAsync()
Native streaming spawn() Spawn() Spawn()
State-aware lifecycle provision_sandbox()
start_sandbox()
stop_sandbox()
deprovision_sandbox()
Provision_sandbox()
StartSandbox()
StopSandbox()
DeprovisionSandbox()
provisionSandbox()
startSandbox()
stopSandbox()
deprovisionSandbox()
State-aware streaming exec exec_in_sandbox() ExecInSandbox()
ExecInSandboxAsync()
execInSandbox()
execInSandboxAsync()
Attached state-aware exec exec_in_attached() ExecInSandboxAttached() execInSandboxAttached()

Additional context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Area-DotNet-SDK.NET SDK APIs, native bindings, packaging, samples, or tests.Area-Node-SDKNode.js and TypeScript SDK APIs, bindings, packaging, CLI integration, or tests.Area-Rust-SDKPublic Rust SDK APIs and integration with the MXC execution engine.Issue-TaskEngineering, maintenance, or operational work that is not a bug or feature request.Release v1.0Issues tracked for the version 1.0 release

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions