https://github.com/shepmaster/providence
https://github.com/shepmaster/providence
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/shepmaster/providence
- Owner: shepmaster
- Created: 2022-11-07T13:32:13.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-06T17:06:20.000Z (over 3 years ago)
- Last Synced: 2025-04-10T06:14:16.721Z (about 1 year ago)
- Language: Rust
- Size: 13.7 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Providence
This is a experimental / prototype implementation of a proposed
technique to allow long-running sessions in the Rust Playground.
# Concept
The "server" process spawns a "child" process. In a real
implementation, the child would be encased inside of a Docker
container and the server would be the playground web server. In this
repository, both are standalone binaries.
The server sends messages to the child over stdin/stdout as
binary-encoded Rust enums. The child acts upon these messages to
read/write files or to spawn futher "child" processes (e.g. `cargo`).
Standard input, output, and error to/from the child process are piped
across the boundary, allowing for interaction with the spawned child.
# Thoughts
- The names "server" and "client" and "child" aren't the best, but
what's better?