capnproto-rust
rmp-rpc
capnproto-rust | rmp-rpc | |
---|---|---|
6 | 1 | |
1,952 | 45 | |
1.3% | - | |
9.1 | 0.0 | |
about 1 month ago | about 3 years ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
capnproto-rust
- Best format for high-performance Serde?
-
Cap'n Proto - RPC at the speed of Rust - Part 1
The only hurdle I have is that while the documentation is extensive it is a little confusing in places and mainly focuses on C++ and the C++ RPC system which is a little different to the Rust code. There are Rust examples in the official repo which I will try and leverage here.
-
Hey Rustaceans! Got an easy question? Ask here (9/2022)!
capnproto-rust is the official Rust implementation.
- Any suggestion to build a long-lived connection with dual-rpc capability
-
Pijul 1.0 Beta
Hi, you seem to know a bit about Sanakirja!
It stores 4kb blobs, right? Does Pijul first parses the data (copying it to other allocations), or uses the data as is? I mean, there are some libraries like cap'n'proto[0] and rkyv[1] that can directly use the file contents as an in-memory data structure, I was wondering if Pijul did anything like that.
I mean, is this btree page [2] stored exactly like this on disk, and does Pijul exploits that to avoid further copying data?
(I guess there's a trouble with compression there: to decompress you really need to write in another buffer)
Also, is the I/O done with something that prevent userspace copies like mmap or io_uring, or does it eventually calls read() to copy the data to its own buffer?
I want to build something like Sanakirja, but with those features, so I'm wondering if there's any overlap.
[0] https://github.com/capnproto/capnproto-rust
[1] https://github.com/rkyv/rkyv
[2] https://docs.rs/sanakirja-core/latest/sanakirja_core/btree/p...
- Is there a library like Serde but which makes it easy to mutate serialized data stored in a [u8] or Vec<u8>?
rmp-rpc
-
Any suggestion to build a long-lived connection with dual-rpc capability
RMP-RPC (https://github.com/little-dude/rmp-rpc) is based on message pack, it will reduce bandwidth cost but might be hard to trace compared to JSON-RPC which is purely text.
What are some alternatives?
tarpc - An RPC framework for Rust with a focus on ease of use.
ormsgpack - Msgpack serialization/deserialization library for Python, written in Rust using PyO3 and rust-msgpack. Reboot of orjson. msgpack.org[Python]
UnrealEngine
tonic - A native gRPC client & server implementation with async/await support.
rkyv - Zero-copy deserialization framework for Rust
remoc - Remoc 🦑 — Remote multiplexed objects, channels and RPC for Rust
bincode - A binary encoder / decoder implementation in Rust.
srpc - Simple RPC system based on top of Canary
x25519-dalek - X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.
Rocket - A web framework for Rust.
rust-multiplayer-physics - A multiplayer physics playground, written in rust.