index-list
not-yet-awesome-embedded-rust
index-list | not-yet-awesome-embedded-rust | |
---|---|---|
3 | 5 | |
4 | 116 | |
- | 1.7% | |
4.6 | 3.6 | |
about 2 months ago | 25 days ago | |
Rust | ||
GNU Lesser General Public License v3.0 only | Creative Commons Attribution Share Alike 4.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.
index-list
-
Things you can’t do in Rust (and what to do instead)
If you switch pointers for indirect indexes, then you can quite easily make a purely safe doubly-linked list in Rust. I did that as a learning exercise and called it index_list (github), where all elements and nodes are stored in a vector (for improved locality). In my very short and non-general tests it performed better than the standard LinkedList implementation. It also provide you with an alternative way to iterate over the list with mutable access to its elements. It probably is not at the same level of quality as standard library things, as I'm quite new to Rust in general, but thought the design would be worth consideration in this context.
-
custom index for Vec<T> (eg 32bit indices in 64 bit)
I implemented a doubly-linked list in safe Rust, where I use Option as an Index type. This gives me an optional u32 in 4 bytes. You can find my lib.rs code on GitHub and it starts with the Index struct. It also implements From for u32, u64 and usize. Maybe you can take inspiration from there. In that code the user isn't supposed to create the Indexes themselves m but get them from the list as they traverse them. That is why most methods are private.
-
A doubly-linked list implemented in safe Rust, using vector indexes
The source code is available on: * GitHub: https://github.com/Fairglow/index-list * Crates.io: https://crates.io/crates/index_list
not-yet-awesome-embedded-rust
-
Rust – Are We Game Yet?
And a list of things missing: https://github.com/rust-embedded/not-yet-awesome-embedded-ru...
-
Tips on switching careers from embedded C to Rust
Building a portfolio is a great idea. Also you can find various areas to contribute to Rust. That would give you great exposure. Check out the not yet awesome rust repo (https://github.com/rust-embedded/not-yet-awesome-embedded-rust) for ideas. Also take a look at the rust foundation grant program, it’s open for applications now. There’s also the “this week in Rust” newsletter (https://this-week-in-rust.org) where job openings relative to Rust are also listed. Lastly, you can check my bio for a link where I provide a list of project ideas for different areas in embedded including Rust.
-
James Web Space Telescope runs on C++ code.
See Not Yet Awesome Embedded Rust for some ongoing work to build out the ecosystem, it's not ready yet. (this is a play on various "Awesome XYZ Rust" lists that have resources for different topics)
-
What libraries do you miss from other languages?
Not Yet Awesome Embedded Rust
-
Things you can’t do in Rust (and what to do instead)
Here's an interesting discussion, consolidated here. My view is you should use a restricted scope atomic (as best as can be supported) and interact with that through a handler struct. I.e. no global state.
What are some alternatives?
rfcs - RFCs for changes to Rust
not-yet-awesome-rust - A curated list of Rust code and resources that do NOT exist yet, but would be beneficial to the Rust community.
too-many-lists - Learn Rust by writing Entirely Too Many linked lists
tlaplus - TLC is a model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.
rental - Rust macro to generate self-referential structs
wg - Coordination repository of the embedded devices Working Group
cons-list - Singly-linked list implementation in Rust
ceres-solver - A large scale non-linear optimization library
fantoccini - A high-level API for programmatically interacting with web pages through WebDriver.
sea-query - 🔱 A dynamic SQL query builder for MySQL, Postgres and SQLite
Ink - 🌈 React for interactive command-line apps
askama - Type-safe, compiled Jinja-like templates for Rust