13 releases
0.1.13 | Oct 9, 2023 |
---|---|
0.1.12 | Feb 13, 2023 |
0.1.11 | Jan 31, 2023 |
0.1.8 | Jun 13, 2022 |
0.1.3 | Jun 24, 2021 |
#249 in Algorithms
370 downloads per month
Used in 13 crates
(12 directly)
15KB
166 lines
memx-cdy
c interface of memx
: the fast memory functions like libc memcmp(), memchr(), memmem(), memcpy(), memset()
Features
- Faster os libc and musl libc
- Replace dynamic os libc using LD_PRELOAD
Quick install
- You can install this into cargo lib path:
cargo build --release
mkdir -p $HOME/.cargo/lib
cp -a target/release/libmemx_cdy.so target/release/libmemx_cdy.a $HOME/.cargo/lib
- You can build debian package:
cargo deb
and install .deb into your local repository of debian package.
Usage
Easy to use, LD_PRELOAD.
- usecase: cargo install
$ LD_PRELOAD=~/.cargo/lib/libmemx_cdy.so command
or
$ export LD_PRELOAD=~/.cargo/lib/libmemx_cdy.so
- usecase: debian package
$ LD_PRELOAD=/usr/lib/libmemx_cdy.so.0.1 command
or
$ export LD_PRELOAD=/usr/lib/libmemx_cdy.so.0.1
2-step of using on your rust source code
- add to dependences of Cargo.toml:
[dependencies]
memx-cdy = "0.1"
- call
memx_init()
in main function
fn main() {
memx_cdy::memx_init();
//
// follow your code
}
Changelogs
References
memx
- rust crate for the fast mem lib
The memx benchmark results
memchr()
- map to c memchr()memcmp()
- map to c memcmp()memcpy()
- map to c memcpy()memeq()
- map to c bcmpr()memmem()
- map to c memmem()memset()
- map to c memset()
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Dependencies
~1MB
~23K SLoC