Contributing to NexusFIX
April 25, 2026 ยท View on GitHub
Current Policy
Pull requests are limited to bug fixes and performance optimizations. Feature PRs will not be accepted at this time.
Issues and discussions are welcome for bug reports, performance questions, and feature ideas. For user-facing support and reporting expectations, see SUPPORT.md.
Bug Fix PRs
To submit a bug fix:
- Open an issue describing the bug with reproduction steps
- Fork the repository and create a branch from
main - Fix the bug and add a test case that reproduces it
- Ensure all existing tests pass
- Submit a PR referencing the issue
Building from Source
Requirements
- C++23 compiler: GCC 13+ or Clang 17+
- CMake 3.25+
- Linux, macOS, or Windows
Build Steps
git clone https://github.com/StratCraftsAI/NexusFIX.git
cd NexusFIX
# Release build
./start.sh build
# Debug build
./start.sh debug
# Build with tests
cmake -B build -DCMAKE_BUILD_TYPE=Release -DNFX_BUILD_TESTS=ON
cmake --build build --parallel
# Run tests
cd build && ctest --output-on-failure
Dependencies (Quill, Abseil, xsimd) are fetched automatically via CMake FetchContent.
Code Standards
All contributions must follow these standards:
- C++23 (ISO/IEC 14882:2024)
- Zero allocation on hot paths (use PMR pools or stack allocation)
noexcepton all hot path functions[[nodiscard]]on all APIs that return values- No
new/deleteon hot paths - No
std::endl(use\n) - No exceptions on hot paths (use
std::expected) - No
virtualin performance-critical code
Performance-sensitive changes must include benchmark results showing no regression.
License
By contributing, you agree that your contributions will be licensed under the MIT License.