nomicon
Theseus
Our great sponsors
nomicon | Theseus | |
---|---|---|
87 | 32 | |
1,682 | 2,726 | |
3.3% | 1.4% | |
5.5 | 8.8 | |
11 days ago | 3 months ago | |
CSS | Rust | |
Apache License 2.0 | MIT License |
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.
nomicon
-
[Media] I'm comparing writing a double-linked list in C++ vs with Rust. The Rust implementation looks substantially more complex. Is this a bad example? (URL in the caption)
itโs even written by the same person that wrote the Nomicon (the guide to the dark arts of unsafe)
-
Rust books to read
If you want to dive deeper you can always have other options but now there are concrete cases, if you want to do low level thing https://doc.rust-lang.org/nomicon/ while if you want multi thread/concurrency stuff https://marabos.nl/atomics/ . There are many many books so you will have to point yourself to what you want
-
Unsafe Rust
Nice video! Glad I could help out. This stuff is hard, and I'm still learning a lot about it myself even years later. The Rustonomicon is a great read if you haven't already.
-
Stepping up the YAML engineer game
Have you got a moment to read through the good book , after reading through this perhaps try the Rustonomicon.
- Questions about ownership rule
-
How to write deserializer for custom binary protocol?
However, this is a wide topic out of scope for a Reddit comment, so maybe just read the Rustonomicon. It explains everything about data handling in Rust.
-
Performance critical ML: How viable is Rust as an alternative to C++
The ownership model & borrow checker makes rust a bit of an awkward language in which to write complex data structures like trees and graphs. It can be done - since you can always use raw pointers & unsafe code when you absolutely need to to treat rust like C. But the language fights you, and the community can get a bit moralistic about this sort of thing. The rust nomicon is a fantastic resource for learning the limits of the borrow checker, and where and how to use unsafe code correctly. You will need unsafe less than you think you will, but sometimes you will have no choice.
-
Sudo and Su Being Rewritten in Rust for Memory Safety
That's a really good point that I feel like isn't talked about enough. Unsafe rust is a lot harder to write correctly than bog standard C, because you have to uphold the invariants to avoid undefined behavior (1). It's why there's a whole ebook about it (2).
That doesn't mean it's impossible to write correct unsafe code, it's just not as obvious as "trust me bro I know better than borrowck." You can't actually elide the invariants Rust upholds, you just have to take over from the compiler when it can't prove them.
(1) https://doc.rust-lang.org/reference/behavior-considered-unde...
-
C++ to Rust Books?
If you are interested in the theoretical stuff that doesn't have much overlap with C++, give the Nomicon a try, or even Learn Rust the Dangerous Way.
-
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.
Theseus
-
Fomos: Experimental OS, Built with Rust
Theseus OS (https://www.theseus-os.com/) is also an OS written in Rust. It's a safe-language OS and I believe it's the future of the OSes due to its unique features.
-
Asynchronous Rust on Cortex-M Microcontrollers
I believe that Tock (tockos.org) and Theseus (https://github.com/theseus-os/Theseus) are in this area a bit as well, just from an actual OS perspective.
I don't know much about this area, but it would be wonderful if these could work with the Libre compute boards, like the AM Logic S905X (Lepotato) or the Rock chip, since they're so much cheaper than a Pi.
-
I am looking for a troubled/bad open source codebase
We could use some help here: https://github.com/theseus-os/Theseus
-
Making a RISC-V Operating System Using Rust
Relevant, also an OS written in and made possible by Rust: https://www.theseus-os.com/
I think Theseus is to conventional OSes what Rust is to JavaScript.
-
Microsoft is busy rewriting core Windows library code in memory-safe Rust
I wonder if somehow someday Microsoft Windows can be rerooted as something like wine running in user space of a rust os like https://github.com/theseus-os/Theseus
-
Need help for porting my kernel to different architectures.
We've been working on porting Theseus OS to aarch64 over the past few months, feel free to browse our code if you need help understanding anything. Theseus is written from scratch entirely in Rust, so it's likely quite relevant to your work. You can probably find all of the aarch64-related commits and issues just by searching "aarch64" on the repo.
-
[concept] Modular kernel
Not to rain on your parade, but you've essentially just described Theseus OS.
-
Planning to make a video on cool Rust apps focused on the end user. Make recommendations!
Operating System: Theseus, Redox
-
Svelte Compiler Rewritten in Rust
Erlang is a bytecode VM, so "compiled" for sure, and is pretty much the pioneer of hot reloading.
Plenty of Lisps and Schemes are compiled (though often to bytecode) and can typically dynamically replace parts of the program.
I think ability to hot upgrade seamlessly more a statement of "how much of the data structure shape is carried at runtime" / "how likely it is old and new API data structures happen to interoperate", and how likely it is that one can convert old runtime state to new runtime state. And that one can be seen as a trade-off; close to the metal control over memory layout is a performance gain, but in practice trades off this kind of flexibility (in theory you could make it work, but it's probably a lot of work).
https://www.theseus-os.com/ is an experimental kernel that can restart/reload/upgrade Rust components at ELF library boundaries. (State internal to a component has to be discarded unless you program a converter. Then again most JS web development hot reload discards internal state of a component.)
-
Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.61]
DESCRIPTION: As an OS developer, you will independently lead a major open-source development project within Theseus OS.Theseus OS is a novel operating system written from scratch entirely in Rust, with the objective of realizing next-generation safety and efficiency guarantees for workloads in a variety of execution environments. Theseus's goals span the gamut from supporting cutting-edge exploratory research topics to more practical concerns of achieving legacy compatibility and usability.Lately, our focus is on deep support for WebAssembly (WASM) interfaces and runtimes, universal cross-platform device drivers, and porting Theseus to additional architectures (e.g., ARM, RISC-V).
What are some alternatives?
book - The Rust Programming Language
mdBook - Create book from markdown files. Like Gitbook but implemented in Rust
rust-ffmpeg - Safe FFmpeg wrapper.
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
Exercism - website - The codebase for Exercism's website.
seL4 - The seL4 microkernel
miri - An interpreter for Rust's mid-level intermediate representation
patterns - A catalogue of Rust design patterns, anti-patterns and idioms
unsafe-code-guidelines - Forum for discussion about what unsafe code can and can't do
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
rust - Empowering everyone to build reliable and efficient software.
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.