Thank you for your interest in contributing to PulseMap! 🎉
git clone https://github.com/ddsha441981/pulse_map.git
cd pulse_map
cargo build
cargo testgit checkout -b feature/your-feature- Format: Run
cargo fmtbefore committing - Lint: Run
cargo clippy -- -D warnings— zero warnings policy - Test: Run
cargo test— all tests must pass - Docs: Run
cargo doc --no-deps— no doc warnings
Follow Conventional Commits:
feat: add TTL-based expiration
fix: resolve race condition in concurrent resize
perf: optimize H2 matching with SIMD prefetch
docs: update benchmark tables
- Describe what changed and why
- Reference any related issues
- Ensure CI passes (clippy, fmt, test, doc)
Layer 4: sync.rs → ConcurrentPulseMap (thread-safe, per-bucket locks)
Layer 3: lib.rs → User API (TypedPulseMap<K,V>, PulseMap, Entry API)
Layer 2: raw.rs → Hash table logic (insert/get/remove/evict)
Layer 1: core/ → Building blocks (MetaWord, Slot, Bucket, hash)
- Every bucket = exactly 64 bytes (1 CPU cache line)
- Eviction is zero-cost — embedded LFU+LRU metadata in MetaWord
- No heap allocation in hot path — inline slots for small KV pairs
- Thread safety via
&self— no&mut selffor CRUD, enablesArc<ConcurrentPulseMap>
# All tests
cargo test
# Specific feature
cargo test --no-default-features # no_std
cargo test --features simd # SIMD (x86_64)
# Benchmarks
cargo bench| Flag | Default | Description |
|---|---|---|
std |
✅ | Standard library (ConcurrentPulseMap) |
simd |
❌ | SIMD H2 matching (x86_64 only) |
- Bug: Include Rust version, OS, and minimal reproduction
- Performance: Include benchmark results with
cargo bench - Feature: Describe the use case, not just the solution
Be respectful, constructive, and inclusive. We follow the Rust Code of Conduct.
By contributing, you agree that your contributions will be licensed under MIT OR Apache-2.0.
Questions? Open an issue or reach out to @ddsha441981.