Skip to content

Contributing

Pablo R. edited this page Oct 6, 2025 · 3 revisions

Contributing to STRAP

Thank you for your interest in contributing to STRAP! We welcome contributions from the community.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Commit your changes (git commit -m 'Add some amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Development Setup

git clone https://github.com/murapadev/strap.git
cd strap
make
# Run tests
cd tests
gcc -I.. -L.. -o test_strap test_strap.c -lstrap
./test_strap
# Run benchmarks (optional)
make bench
./benchmarks/strap_bench

For MSVC users, run scripts\build_windows_msvc.bat from a Visual Studio Developer Command Prompt to configure, build, and test via CMake.

Code Style

  • Use consistent indentation (4 spaces)
  • Add comments for complex logic
  • Follow C99 standards where possible
  • Write clear, descriptive function and variable names

Roadmap Focus: v0.4

We are actively seeking contributions that push the v0.4 milestone forward:

  • Performance — Extend SIMD coverage (e.g., arena helpers) and keep streaming benchmarks honest.
  • String utilities — Build on the split/case-insensitive helpers with arena variants or additional predicates.
  • Cross-platform — Maintain the new MSVC/CMake toolchain, contribute additional CI coverage, or port shims to further Unix variants.
  • Documentation — Grow the Cookbook with more recipes and keep API complexity notes up to date.

Mention the focus area in your PR description or commit message (e.g., [v0.4][perf]) so maintainers can triage faster.

Reporting Issues

Please use the bug report template when creating issues. Include as much detail as possible to help us reproduce and fix the issue.

License

By contributing, you agree that your contributions will be licensed under the MIT License.