rt-thread
cbindgen
rt-thread | cbindgen | |
---|---|---|
19 | 19 | |
9,761 | 2,211 | |
3.4% | 1.8% | |
9.9 | 7.8 | |
1 day ago | 2 days ago | |
C | 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.
rt-thread
-
2023 IoT Contest
The IoT Contest 2023 is organized by Open Source RT-Thread Organization and we Partnered with NXP Semiconductors, STMicroelectronics, and WCH Electronics.
-
Any decent RTOS for my Longan Nano?
The GD32VF103 is also supported by RT-Thread.
-
The Most Popular Open Source IoT Operating System from China
There's a bunch of documentation (in english) at https://github.com/RT-Thread/rt-thread/blob/master/documenta...
One thing that stands out is that one of the selling points would be the inclusion of middleware etc.
Internet of Things related software packages:
-
Tell a Story about You & RT-Thread.
Open Source RT-Thread IoT OS Project has hit 12000 followers on social media platforms. THANK YOU ALL FOR THE SUPPORT!
- RT-Thread - open source IoT operating system.
-
Embedded GUI Contest
So RT-Thread IoT OS partnered with LVGL, STMicroelectronics, Nuvoton, and NXP to bring this contest, opening an opportunity for embedded developers that come from everywhere to explore more possibilities with embedded GUI.
-
Rust for Embedded Development
Now, let's get it on the Open Source RT-Thread operating system to demonstrate how rust can be used for embedded development.
-
How to Port Operating System to Different Chip Architecture?
There are consolidate steps to transplant the OS onto other hardware platforms, which includes various chips of the same architecture, as well as of different architectures. This article will walk you through how to port OS to many various chips and we learn from open source RT-Thread OS as a case study.
-
Hands Writing Robot
Hardware:ART-PI、arduino、TM4C123GXL RT-Thread Inside:v3.14 Development Tool:MDK-ARM5.31、VSCode
cbindgen
-
Hello World in Go From Rust
Golang uses cgo to communicate with external C libraries and Rust uses FFI (Foreign function interfaces) to export C functions. Additionally, a library for automatically generating bindings can be used to generate the header files (.h). In our case, we'll only be exporting two C functions, so using cbindgen is overkill but we'll use it regardless because why not? Firstly, we'll write the rust functions we want to export. We'll start by creating a new rust library:
-
Ask HN: Automating multi-lang communication with a meta programming language
[1]: https://github.com/mozilla/cbindgen
-
Nim v2.0 Released
As a 2-step approach, you could also probably use https://github.com/mozilla/cbindgen and then Nim's native C FFI.
-
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.
-
How can I use rust libraries in zig/C
There's also cbindgen for automating the generation of C headers once you've got your code in the right shape and you'll also want to read the Rustonomicon.
-
C Strings and my slow descent to madness
You can backport Rust standard library to C using https://github.com/eqrion/cbindgen .
-
Rust FFI and cbindgen: Integrating Embedded Rust Code in C
Later we'll see what cbindgen essentially does is receive a configuration and a Rust library and then spit out a C header (.h) file. One might think that what cbindgen is doing might not be that special and can be done by hand. In which some cases that might be true if the project is simple enough. Though additionally as the cbindgen documentation states:
-
Nautilus just fucked me. (Gnome paper cuts)
Fuck it, I'll take the bait. Rust allows for amazing C interop by allowing for exporting of C types as a dynamic library, like C. Unlike C, this still allows for Rust's advanced checking at compile time. librsvg is one such library that is being used in the GTK ecosystem that is also almost completely Rust. You can use tools like cbindgen to generate C bindings.
-
Hey Rustaceans! Got a question? Ask here! (47/2022)!
Or alternatively cbindgen to create the header file from the Rust source.
-
7 ways to pass a string between 🦀 Rust and C
The easiest way to obtain the headers for the rust code is to use the cbingen library.
What are some alternatives?
tinyusb - An open source cross-platform USB stack for embedded system
rust-bindgen - THIS CRATE IS DEPRECATED, please use https://github.com/servo/rust-bindgen.
qpc - QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
cxx - Safe interop between Rust and C++
libopencm3 - Open source ARM Cortex-M microcontroller library
rusty-cheddar - A Rust crate for automatically generating C header files from Rust source file.
lvgl - Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.
flutter_rust_bridge - Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
bouffalo_sdk - BouffaloSDK is the IOT and MCU software development kit provided by the Bouffalo Lab Team, supports all the series of Bouffalo chips. Also it is the combination of bl_mcu_sdk and bl_iot_sdk
tch-rs - Rust bindings for the C++ api of PyTorch.
QuarkTS - An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
Module Linker - browse modules by clicking directly on "import" statements on GitHub