Thank you for your interest in contributing! 🎉
# Clone the repo
git clone https://github.com/sylphxltd/pura.git
cd pura
# Install dependencies
bun install
# Run tests
bun test
# Run benchmarks
bun bench
# Type check
bun run typecheck
# Lint
bun run lintpura/
├── packages/
│ ├── core/ # Persistent data structures (HAMT, RRB-Tree)
│ ├── optics/ # Lens, Prism, Traversal
│ ├── transducers/ # Transducer implementation
│ └── react/ # React integration
├── benchmarks/ # Performance benchmarks
├── docs/ # Documentation
└── examples/ # Usage examples
- Create a branch:
git checkout -b feat/your-feature - Make changes: Write code + tests
- Test:
bun test - Benchmark:
bun bench(if performance-critical) - Commit: Use conventional commits
- Push:
git push origin feat/your-feature - PR: Create pull request
- TypeScript: Strict mode, no
any - Tests: 100% coverage for core algorithms
- Performance: Benchmark critical paths
- Documentation: JSDoc for all public APIs
- Commits: Conventional commits (feat, fix, docs, etc.)
- HAMT implementation (IMap, ISet)
- RRB-Tree implementation (IList)
- Comprehensive benchmarks
- Documentation
- Optics (Lens, Prism)
- Transducers
- React hooks
- Migration tools
Open an issue or discussion on GitHub!