libskry_r
bounds-check-cookbook
libskry_r | bounds-check-cookbook | |
---|---|---|
2 | 1 | |
16 | 65 | |
- | - | |
0.0 | - | |
over 3 years ago | over 1 year ago | |
Rust | Rust | |
MIT License | 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.
libskry_r
-
Rewrite the VP9 codec library in Rust
As already mentioned, bounds checks won't necessarily cause that much overhead. When I rewrote my small image processing library from C to Rust ([1]), I only had to use unchecked array access in one hot loop to get overall performance equivalent to C code.
[1] https://github.com/GreatAttractor/libskry_r
-
Speed of Rust vs. C
To practise Rust, I rewrote my small C99 library in it [1]. Performance is more or less the same, I only had to use unchecked array access in one small hot loop (details in README.md). I haven't ported multithreading yet, but I expect Rust's Rayon parallel iterators will likewise be comparable to OpenMP.
[1] https://github.com/GreatAttractor/libskry_r
bounds-check-cookbook
-
Rewrite the VP9 codec library in Rust
The compiler can actually get pretty fancy with its analysis. See "https://github.com/Shnatsel/bounds-check-cookbook" for details. In your case though, I don't think its necessary to get that fancy?
Whatever routine that checks if the number of fields is correct can return a slice of fields. Then you can iterate over that slice, which doesn't require any more bounds checking than the equivalent for loop in C would. If you need to access the slice in a more complicated manner than simply looping forward over it field by field, then the bounds check cookbook could be useful.
Not sure if this is helpful because I don't know the details of your case.
What are some alternatives?
smartstring - Compact inlined strings for Rust.
fst - Represent large sets and maps compactly with finite state transducers.
redgrep - ♥ Janusz Brzozowski
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
barre - A Regular Expression Library and CFG parser for Rust using Brzozski Derivatives
gccrs - GCC Front-End for Rust
ixy-languages - A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
rustc_codegen_gcc - libgccjit AOT codegen for rustc
dhall-lang - Maintainable configuration files
ixy - A simple yet fast user space network driver for Intel 10 Gbit/s NICs written from scratch
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore