TheFramework
Jump to navigation
Jump to search
Outline
- Multi-user realtime 3d graphics editor.
- Microservice inspired architecture. But use IPC/shared memory when possible.
- Need a local daemon as a gateway/introducer for the services.
- Hash all the things.
RPC
Message Format
- Maybe just use Rust structs? Can redefine them separately later...
- Could use codegen... Can go from Rust structs to external format or visa-versa.
- Could keep them in Rust native and provide a C library interface to interact with them.
Capnproto?
- A bit of a pain to integrate into Rust.
- Plays well with other languages.
- Need to find out how to extent the codegenerated types with my own.
- Would need to use capnproto's internal native formats instead of Rusts.
- Good versioning...
JSON?
- I don't like JSON.
- It's fairly well known and supported.
Enums vs "strings"?
- Strings much more waste on the wire. Higher parsing overhead.
- Strings allow for custom types. Could just add a custom type enum that has a string.
- Enums could be 'backwards compatible' if you just ignore anything you don't understand.
ASync
Look into using tokio for async.
Daemonization
2 libraries. One doesn't do Windows but seems better?
IPC
Servo has an ipc-channel crate. Doesn't do Windows yet.