uniffi-rs
just
Our great sponsors
uniffi-rs | just | |
---|---|---|
26 | 161 | |
2,237 | 16,682 | |
7.1% | - | |
9.5 | 9.1 | |
1 day ago | 2 days ago | |
Rust | Rust | |
Mozilla Public License 2.0 | Creative Commons Zero v1.0 Universal |
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.
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?
- 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.
-
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
- 1Password releases Typeshare, the "ultimate tool for synchronizing your type definitions between Rust and other languages for seamless FFI"
just
-
Which command did you run 1731 days ago?
> When a command has some cognitive requirements I create a script with some ${1:-default} values and I store them all in $PATH enabled local/bin
I would consider using just for this:
-
Using Make – writing less Makefile
Your coworker's experience is more principled: Make is a mediocre tool for executing commands. It wasn't ever designed for that. Although it is pretty common to see what you are mentioning in projects because it doesn't require installing a dependency.
For a repo where an easy to install (single binary) dependency is a non-issue, consider using just. [1] You get `just -l` where you can see all the command available, the ability to use different languages, and overall simpler command writing.
-
Show HN: Just.sh – compiler that turns Justfiles into portable shell scripts
This is fantastic, but I'd say that this solution is somewhat in response to this open issue from 2019:
https://github.com/casey/just/issues/429
I really wish just was included as a package in distributions.
-
Sharing Saturday #496
So far, I didn't work on new features at all but on stabilizing the ground for further development: 1. CMake lists and modules were rewritten a lot, now managing builds and their configurations is much lesser pain. 2. Brought in Justfile for regular tasks, and it's great, no less. 3. Linters, formatters, analyzers for almost all the code (except for Janet for now, as because of it being a niche and young technology, it didn't get enough attention yet). 4. ECS stub. Now runtime class doesn't look like a god object. 5. Started writing unit tests which didn't happen with my personal projects before and maybe indicates how serious am I about this one :D 6. Some of previously hardcoded data has been moved to INI files. Now, if I release the game in 10 years, and in 10 more years some eccentric person decides to make a variant of it, it will be slightly simpler.
-
What’s with DevOps engineers using `make` of all things?
https://github.com/casey/just - more of a command runner but the Justfile syntax is quite Makefile-like.
If you dislike make checkout just https://github.com/casey/just
i've grown to like this for my personal projects. https://github.com/casey/just
Make is not exactly made for task definition and running, but it can be used like so as long as you know its quirks and counter intuitive gotchas, of which there are many seeing as Make is meant for building sources first and foremost. I use it a lot. I've been meaning to convert at least my personal stuff to https://github.com/casey/just or another task runner for some time though, Make can really be annoying sometimes.
-
Show HN: Jeeves – A Pythonic Alternative to GNU Make
Reminds me of `just`. Which I love.
-
Dev Containers: Open, Develop, Repeat...
In my example above, I installed the developer tool "Just" as a Dev Container feature. I could also install it by adding the install script to my Dockerfile. However, I would have to build my own Dockerfile and would have to maintain this piece of code myself. This Dev Container Feature works on different architectures and base images, which makes them convenient to use.
What are some alternatives?
Task - A task runner / simpler Make alternative written in Go
cargo-make - Rust task runner and build tool.
flutter_rust_bridge - Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
cargo-xtask
Taskfile - Repository for the Taskfile template.
rust-android-gradle
PyO3 - Rust bindings for the Python interpreter
CodeLLDB - A native debugger extension for VSCode based on LLDB
cargo-release - Cargo subcommand `release`: everything about releasing a rust crate.
helix - A post-modern modal text editor.
cxx - Safe interop between Rust and C++
Module Linker - browse modules by clicking directly on "import" statements on GitHub