inlinable-dyn-extension-traits
binrw
Our great sponsors
inlinable-dyn-extension-traits | binrw | |
---|---|---|
4 | 3 | |
23 | 479 | |
- | - | |
0.0 | 8.2 | |
over 3 years ago | about 1 month ago | |
Rust | Rust | |
- | 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.
inlinable-dyn-extension-traits
-
gdbstub 0.6: An ergonomic, #![no_std] implementation of the GDB Remote Serial Protocol in Rust - now with async support!
In the meantime, you could check out daniel5151/optional-trait-methods for some chicken-scratch notes + exploration on IDETs, including some code samples which you can throw right into godbolt.org to see how well they optimize.
-
Post-Monomorphization Dead Code Elimination and Other Unwritten Blog Posts
Funny enough, I've also been meaning to write a full blog post about it, but haven't found the time! In the meantime, I've got a rough overview of this technique as part of the gdbstub docs, and I've got a WIP repo of example code and exploratory notes that explores the technique in more detail (along with comparing it with alternative approaches)
-
Rust 2030 Christmas list: Better cfg
Also, check out daniel5151/optional-trait-methods if you haven't already (I point to it near the end of the gdbstub documentation I linked). It's a very rough overview of all the various techniques I considered before landing on IDETs, and includes several simplified examples of how the resulting APIs might work from a implementation and user's perspective.
-
Designing a new architecture for Rspotify based on trait inheritance, need opinions
I've spent quite a bit of time staring at assembly output and performing in-application testing to make sure that optimizations were being triggered as expected.
binrw
-
How to write deserializer for custom binary protocol?
Serde can work but won't be easy, because It wants to deserialize everything. Take a look at the binrw crate(https://github.com/jam1garner/binrw) and define your binary layout with It, then you can actually create a wrapper which reads the file from any reader(be it a Cursor over the mmap'd slice or a file).
- Kaitai Struct: A new way to develop parsers for binary structures
-
Post-Monomorphization Dead Code Elimination and Other Unwritten Blog Posts
Sure! The commit is here (I haven’t pushed the version of this commit I made on binread itself but the actual changes are identical)
What are some alternatives?
gdbstub - An ergonomic, featureful, and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust (with no-compromises #![no_std] support)
nom - Rust parser combinator framework
intertrait - A library providing direct casting among trait objects implemented by a type
wuffs - Wrangling Untrusted File Formats Safely
hachoir - Hachoir is a Python library to view and edit a binary stream field by field
restruct - Rich binary (de)serialization library for Golang
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby
Grammars - Grammars for Synalyze It! and Hexinator
smm2-documentation - Documentation for the game Super Mario Maker 2.
deku - Declarative binary reading and writing: bit-level, symmetric, serialization/deserialization
FortniteReplayDecompressor - Read Fortnite replay files