Thank you for your interest in contributing! This is an experimental, research-oriented crate; contributions that improve correctness, performance, portability, or documentation are welcome.
Please open a GitHub issue and include:
- A minimal reproducer (a short JSON input and the call that triggers the bug).
- The output you expected and what you actually observed.
- Your CPU model (relevant for AVX-512BW vs SWAR path) and Rust toolchain
version (
rustc --version).
-
Fork the repository and create a feature branch.
-
Make your changes. Keep commits focused; one logical change per commit.
-
Run the full test suite:
cargo test -
Format your Rust code before committing:
cargo fmt
-
Open a pull request against
masterwith a clear description of what the change does and why.
The files under asm/x86_64/ are hand-written GNU assembler. If you modify
them, please also update the corresponding comments in src/lib.rs and the
design notes in doc/dev.md.
- Rust: standard
rustfmtformatting (cargo fmt). - Assembly: Intel syntax, one blank line between logically distinct blocks, descriptive inline comments for every non-obvious instruction.
- Ensure exactly one blank line between Rust function definitions (see AGENTS.md for the automated-agent policy).
For questions about using the library, open a
GitHub Discussion
or a GitHub issue labelled question.