iroh
uniffi-rs
iroh | uniffi-rs | |
---|---|---|
7 | 26 | |
1,575 | 2,301 | |
4.4% | 2.8% | |
9.8 | 9.5 | |
2 days ago | 2 days ago | |
Rust | Rust | |
Apache License 2.0 | Mozilla Public License 2.0 |
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.
iroh
-
SeaweedFS fast distributed storage system for blobs, objects, files and datalake
If you're talking about this https://github.com/n0-computer/iroh ... Iroh is a p2p file syncing protocol. That's not even close to the same wheelhouse as SeaweedFS?
-
I Moved My Blog from IPFS to a Server
Totally biased founder here, but I work on https://github.com/n0-computer/iroh, a thing that started off as an IPFS implementation in rust, but we broke out & ended up doing our own thing. We're not at the point where the iroh implements "the full IPFS experience" (some parts border on impossible to do while keeping a decentralized promise), but we're getting closer to the "p2p website hosting" use case each week.
-
Willow Protocol
if you are looking for something similar to ipfs but a bit more minimalistic and performance oriented, check out iroh https://github.com/n0-computer/iroh .
It is a set of open source libraries for peer to peer networking and content-addressed storage. It is written in rust, but we have bindings to many languages.
One part of iroh is a work in progress implementation of the willow spec. The lower layers include a networking library similar to libp2p and a library for content-addressed storage and replication based on blake3 verified streaming.
Most iroh developers have been active in the ipfs community for many years and have shared similar frustrations... See this talk from me in 2019 :-) https://www.youtube.com/watch?v=Qzu0xtCT-R0
-
Planning to make a video on cool Rust apps focused on the end user. Make recommendations!
IPFS Protocol Stack: Iroh
-
Iroh: A New Implementation of IPFS in Rust
We have an initial release out since earlier today: https://github.com/n0-computer/iroh/releases/tag/v0.1.0 but we are still very early, so be gentle :)
-
ACM SIGCOMM'22: Design and Evaluation of IPFS
(Disclosure: I work for the Filecoin Foundation/Filecoin Foundation for the Decentralized Web).
I do actually agree that the privacy and anonymity aspects of IPFS are not well- conveyed. I think people get hooked on the "censorship-resistant" nature of decentralized systems, without understanding that even if you have multiple sources, for instance in a content-addressable network like IPFS, aggressive censorship systems have other strategies to dissuade dissemination or punish readers. You always have to be thinking a few steps ahead. Services like Tor and, I hope, the IPFS network both try to convey what threat models they are useful for, and which they are not, but it's really hard to stop overenthusiastic re-statements that give them super-powers they do not, in fact, possess.
That said, there's a bunch of careful thinking right now going on about how IPFS's privacy story could be improved: https://blog.ipfs.tech/ipfs-ping-2022-recap/ has a couple of sessions on this, and is a great summary of some other recent developments in the space.
One of those improvements is in the point about nodes being high CPU, RAM, etc. (I actually find this to be more of a challenge when running the full IPFS Go node locally on my desktop, rather than on a VPS; it requires some tweaking.)
The strategy right now is to encourage more implementations of IPFS to cover more use-cases; the original go-ipfs had to do everything, including maintaining some legacy decisions. Nowadays, there's a lot of effort on alternative IPFS implementations that can be slimmer, or optimised for particular scenarios, e.g. on an embedded device, serving a high-load web gateway, or providing millions of files. Protocol Labs recently renamed their canonical go-ipfs to kubo (https://github.com/ipfs/kubo ) to make it more of a peer with other implementations.
Of course, I love all these new generation implementations EQUALLY, but if you pushed me, I've enjoyed playing around with https://github.com/n0-computer/iroh , a modular rust implementation building off the increasingly robust rust libp2p etc libraries. There's some more to pick from here: https://docs.ipfs.tech/basics/ipfs-implementations/
uniffi-rs
-
Opaque Types for UniFFI
On my youtube series "Growing up Rust", I'm building a personal CRM in Rust with a Swift frontend. I'm using CQRS and an event-driven architecture with the least amount of swift as possible. I'm using UniFFI to generate the bindings for swift (and in this example python)
-
Willow Protocol
Not officially. We currently have bindings for rust, python, golang and swift.
These were the most asked for bindings (python for ml, golang for networking and swift for ios apps).
We are using uniffi https://mozilla.github.io/uniffi-rs/
Would you need C or C++ bindings?
- UniFFI: Automatically generate foreign-language bindings for Rust libraries
- Compiling Rust for .NET, using only tea and stubbornness
-
Show HN: Pip Imports in Deno
An alternative is metacall. The example in the readme is about calling Python from Javascript, but it also works with other languages, like Ruby, C#, Java, and other languages
https://github.com/metacall/core
List of supported languages here https://github.com/metacall/core/blob/develop/docs/README.md...
In the future, maybe webidl (or extensions of it) will bring interoperability between languages too. At the moment there is https://mozilla.github.io/uniffi-rs/ for interoperability between Rust and a number of languages (basically the ones mozilla needs: Swift, Kotlin, Javascript)
-
ffizz: Build a Beautiful C API in Rust
The tooling for the first kind -- calling Rust from another language -- is a bit less developed, and tends to rely on code generation that doesn't necessarily produce a natural C API. cbindgen, uniffi, cxx, and Diplomat all take this course.
-
macOS Apps in Rust
Mozilla's uniffi-rs is really good. You write a common IDL and the bindings are generated automatically.
https://github.com/mozilla/uniffi-rs
-
Write SDK “base” in Rust, wrap in other languages?
At Mozilla we built a multi-language bindings generator: https://github.com/mozilla/uniffi-rs/
-
An experiment in the Rust compiler to begin devising a new cross-language ABI that's higher-level than the C ABI, with the goal of safer and easier FFI
Is there a connection with Mozilla UniFFI ?
-
Tauri now supports Android/iOS in the 2.0 branch!
Rust <> Swift/ Kotlin works very well with uniffi-rs by Mozilla: https://github.com/mozilla/uniffi-rs
What are some alternatives?
kubo - An IPFS implementation in Go
flutter_rust_bridge - Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
bevy - A refreshingly simple data-driven game engine built in Rust
rust-android-gradle
dragit - Application for intuitive file sharing between devices.
PyO3 - Rust bindings for the Python interpreter
oku - Oku is a hive browser written in Rust.
cxx - Safe interop between Rust and C++
rust-libp2p - The Rust Implementation of the libp2p networking stack.
wasmer-go - 🐹🕸️ WebAssembly runtime for Go
iced - A cross-platform GUI library for Rust, inspired by Elm
glommio - Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.