Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/signalwalker/rexa

A library for object-capability networks in Rust.
https://github.com/signalwalker/rexa

object-capabilities p2p

Last synced: 2 months ago
JSON representation

A library for object-capability networks in Rust.

Awesome Lists containing this project

README

        

# Rexa


crates.io
commits since last release
docs.rs

A library implementing [OCapN](https://github.com/ocapn/ocapn).

## Progress

- [ ] Async runtime agnostic
- [ ] Test with [ocapn-test-suite](https://github.com/ocapn/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`, or should we use a message channel?
- [ ] Figure out how to deal with promise pipelining
- [ ] Third-party handoffs
- Operations:
- [x] `op:start-session`
- [x] `op:deliver-only`
- [x] `op:deliver`
- [ ] `op:pick`
- [x] `op:abort`
- [ ] `op:listen`
- [ ] `op:gc-export`
- [ ] `op:gc-answer`
- Bootstrap:
- [x] `fetch`
- [ ] `deposit-gift`
- [ ] `withdraw-gift`
- Promises:
- [x] `fulfill`
- [x] `break`
- Netlayers:
- [ ] Onion Netlayer ([arti](https://gitlab.torproject.org/tpo/core/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

- [Sneedchat](https://github.com/signalwalker/sneedchat)

## Etymology

- "R" as in "Rust"
- "Exa" as in:
- "[exo](https://en.wiktionary.org/wiki/exo-)", a prefix meaning "outer" or "external"
- "[Exapunks](https://www.zachtronics.com/exapunks/)", a puzzle game about distributed programming