#memcmp #libc #memchr #memmem #memcpy #memory #memset #debian-package #install

memx-cdy

The fast memory functions like a libc memcmp(), memchr(), memmem(), memcpy(), memset()

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

#1197 in Algorithms

Download history 34/week @ 2025-03-07 79/week @ 2025-03-14 41/week @ 2025-03-21 33/week @ 2025-03-28 11/week @ 2025-04-04 40/week @ 2025-04-11 34/week @ 2025-04-18 131/week @ 2025-04-25 102/week @ 2025-05-02 50/week @ 2025-05-09 18/week @ 2025-05-16 7/week @ 2025-05-23 26/week @ 2025-06-06 77/week @ 2025-06-13 58/week @ 2025-06-20

161 downloads per month
Used in 13 crates (12 directly)

MIT/Apache

15KB
166 lines

memx-cdy

crate Docs Rust Version Apache2/MIT licensed Test ubu Test mac Test win

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

  1. 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
  1. You can build debian package:
cargo deb

and install .deb into your local repository of debian package.

Usage

Easy to use, LD_PRELOAD.

  1. usecase: cargo install
$ LD_PRELOAD=~/.cargo/lib/libmemx_cdy.so command

or

$ export LD_PRELOAD=~/.cargo/lib/libmemx_cdy.so
  1. 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

  1. add to dependences of Cargo.toml:
[dependencies]
memx-cdy = "0.1"
  1. call memx_init() in main function
fn main() {
    memx_cdy::memx_init();
    //
    // follow your code
}

Changelogs

This crate's changelog here.

References

  • memx - rust crate for the fast mem lib

The memx benchmark results

License

This project is licensed under either of

at your option.

Dependencies

~1MB
~23K SLoC