Skip to content

A library for object-capability networks in Rust.

Notifications You must be signed in to change notification settings

SignalWalker/rexa

Repository files navigation

Rexa

crates.io commits since last release docs.rs

A library implementing OCapN.

Progress

  • Async runtime agnostic
  • Test with ocapn-test-suite (partially working; requires OnionNetlayer to work)
  • Syrup:
    • #[derive(Serialize, Deserialize)] (partial; missing enums, some other features)
    • Design better way of handling enums
  • CapTP:
    • Crossed Hellos mitigation
    • Figure out ideal way to prevent reader/writer generics from infecting everything else
      • Right now, it's difficult to write code that can use multiple netlayers at once
    • Should we store locally exported objects as Arc<dyn Object>, or should we use a message channel?
    • Figure out how to deal with promise pipelining
    • Third-party handoffs
    • Operations:
      • op:start-session
      • op:deliver-only
      • op:deliver
      • op:pick
      • op:abort
      • op:listen
      • op:gc-export
      • op:gc-answer
    • Bootstrap:
      • fetch
      • deposit-gift
      • withdraw-gift
    • Promises:
      • fulfill
      • break
  • Netlayers:
    • Onion Netlayer (arti's onion service support is shaky right now)
    • Manage multiple transport types using some sort of netlayer manager struct?
  • Locators:
    • Deserialize from URI

Examples

Etymology

  • "R" as in "Rust"
  • "Exa" as in:
    • "exo", a prefix meaning "outer" or "external"
    • "Exapunks", a puzzle game about distributed programming

About

A library for object-capability networks in Rust.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published