Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/signalwalker/rexa
- Owner: SignalWalker
- Created: 2022-12-05T21:01:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-23T14:07:48.000Z (10 months ago)
- Last Synced: 2024-04-18T14:12:18.645Z (9 months ago)
- Topics: object-capabilities, p2p
- Language: Rust
- Homepage:
- Size: 429 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Rexa
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