InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now. Learn more →
Uniffi-rs Alternatives
Similar projects and alternatives to uniffi-rs
-
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
-
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
SWIG
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
-
-
-
-
-
qt
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
-
-
-
-
diplomat
Experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
uniffi-rs discussion
uniffi-rs reviews and mentions
-
Lessons from Mixing Rust and Java: Fast, Safe, and Practical
Do not write the bindings manually. Just use the amazing uniffi-rs library from Mozilla.
https://github.com/mozilla/uniffi-rs
You can generate bindings for multiple languages. It supports error handling on both sides and latest versions also support native async integration.
I've used it to reuse the same Rust engine in iOS and Android apps and write native UI.
https://github.com/koofr/vault
-
Show HN: Gobley – Call Rust from Kotlin Multiplatform
- GitHub discussions: https://github.com/gobley/gobley/discussions
Gobley is a fork of the (now archived) uniffi-kotlin-multiplatform-bindings (https://gitlab.com/trixnity/uniffi-kotlin-multiplatform-bind...) which is built on Mozilla’s excellent (still active) UniFFI (https://github.com/mozilla/uniffi-rs) project.
Please try it out and let us know what you think!
-
Koto Programming Language
Limited for now, Koto's main role as an embedded language has meant that I haven't had a need, but I would like to provide bindings for other languages at some point, and to enable dynamically loaded Rust libraries.
I'd start by trying UniFFI [1] which looks much simpler than the approach of manually writing a C API and using that as a foundation for higher-level language bindings.
This would also likely be the starting point for a package management system (if there ends up being demand for one). Rust doesn't have a stable ABI so to make sure that dynamically loaded Rust packages are compatible, either Koto would need to be in the business of Rust toolchain management so that packages can be recompiled when needed, or an API layer would be needed. There are some projects that provide ABI-compatibility shims but I don't like the idea of having two separate approaches to FFI, so I'd want to try to build on the foreign-FFI layer once it's in place.
I'm half hoping that by the time I'm interested in working on this Rust will have decided to pursue ABI stability. And there's also something in the back of my mind that's yelling 'Wasm!' at me but I would need someone wiser to convince me that it would be the right direction.
[1] https://github.com/mozilla/uniffi-rs
- UniFFI: A multi-language bindings generator for Rust
- Crossing the Impossible FFI Boundary, and My Gradual Descent into Madness
-
Ask HN: How's your experience with Compose/Kotlin multiplatform?
Kinda. Did a dummy project in a few languages to see what I wanted to use for the big project.
Looked at Go, Swift, Kotlin MP, and Rust.
I liked Kotlin tools, and small binary size. If I knew I wasn't going to need more libraries in the future I might pick it.
Go is great, although binaries a bit large with the runtime packed in, and TinyGo too limiting.
Rust: I couldn't find a good multi-language binding package so I skipped it... then later found https://github.com/mozilla/uniffi-rs It could be a top contender.
-
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
-
A note from our sponsor - InfluxDB
www.influxdata.com | 20 May 2025
Stats
mozilla/uniffi-rs is an open source project licensed under Mozilla Public License 2.0 which is an OSI approved license.
The primary programming language of uniffi-rs is Rust.