project-safe-transmute
Rudra
project-safe-transmute | Rudra | |
---|---|---|
7 | 11 | |
78 | 1,297 | |
- | 0.4% | |
0.0 | 5.5 | |
2 months ago | about 2 months ago | |
Rust | ||
Apache License 2.0 | Apache 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.
project-safe-transmute
-
Hey Rustaceans! Got a question? Ask here (25/2023)!
Project "safe transmute"
-
[Media] This is kinda cool
In this case a simple From implementation or anything like that won't be different, even performance wise. For more complex cases there's project-safe-transmute, but that will still require you to annotate your structs in such a way that their layouts will be guaranteed to be compatible, which you're not currently doing.
-
Turning a slice of structs into a slice of floats without copying?
You might also be interested in the project safe transmute, which might bring safe transmutes like these to stdlib in the future.
-
Purely Functional Data Structures in Rust
That's probably a job for the safe transmute project
-
Rudra: Rust Memory Safety & Undefined Behavior Detection
One of the biggest notable examples is unsafe transmutes that could be safe. In fact there's a safe transmute working group trying to cover these cases. Just to give an example, if you have a #[repr(transparent)] newtype, it could be possible to safely transmute from a reference of an inner type to the type it wraps (for e.g. 1-tuple or 1-field structs), but doing that now presently requires unsafe.
- Deserializing Binary Data Files in Rust
-
totally-safe-transmute
Jokes aside, there is actually a work on going for making a subset of transmutes safe: https://github.com/rust-lang/project-safe-transmute
Rudra
- Rudra – static analyzer to detect common undefined behaviors in Rust programs
- Rudra: Finding Memory Safety Bugs in Rust at the Ecosystem Scale [pdf]
-
Does Rust not need extra linting and sanitizing tools like C++?
If you’re writing unsafe Rust, you might consider cargo miri and Rudra as additional static analyzers which can find bugs rustc won’t
-
Open Rust-related systems research problems suitable for PhD?
In my opinion, much of Rust-specific PhD research likely to be publishable and/or high impact either falls into verification (e.g Prusti, Cruesot) or bug-finding (e.g. Rudra, SyRust). Ralf Jung and his collaborators have done exceptional work in the verification space.
-
Introducing Fortify: A simple and convenient way to bundle owned data with a borrowing type
Perhaps Rudra as well.
- Magma, a project I hope will make provably correct software possible for everyone
-
Is There Anyway To Analyze Unsafe Rust Code For Vulnerabilities?
Haven't used it myself, but I remembered a tool called Rudra was recently posted about in the sub
-
Scylla – Real-Time Big Data Database
Not sure proves your point, but maybe doesn't disprove your point strongly enough. I am not qualified to argue from experience about how Rust is ideally suited in the ways you think it is not. But from everything I have seen, it can do a whole lot of what C++ is also good at. Rust safety is not all or nothing and a codebase could definitely prioritize ergonomics over correctness.
Two things that I saw in the last couple weeks that might start to sway you.
https://github.com/sslab-gatech/Rudra#readme
GhostCell: Separating Permissions from Data in Rust
- Rudra, Rust Memory Safety and Undefined Behavior Detection
- Rudra: Rust Memory Safety and Undefined Behavior Detection
What are some alternatives?
advisory-db - Security advisory database for Rust crates published through crates.io
magmide - A dependently-typed proof language intended to make provably correct bare metal code possible for working software engineers.
rust - Empowering everyone to build reliable and efficient software.
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
totally-safe-transmute
electrolysis - Simple verification of Rust programs via functional purification in Lean 2(!)
Rudra-PoC - Trophy case for Rudra bugs.
rust-verification-tools - RVT is a collection of tools/libraries to support both static and dynamic verification of Rust programs.
kaitai_struct_rust_runtime - Kaitai Struct: runtime for Rust
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby