Thanks for contributing!
For a first contribution, prefer one of these:
- docs or example corrections
- focused tests for existing behavior
- small validation or benchmark script improvements
Read these before changing public behavior or core runtime code:
README.mdROADMAP.mddocs/API_BOUNDARY.mddesign/constraints.en.md
If you want to change loop ownership, listener behavior, backpressure semantics, or TLS/kTLS data paths, open a design discussion or start with a small preparatory PR.
- Go 1.24.2 required.
- Module path:
github.com/bernardhu/connaxis - Run validation before submitting changes:
go test ./...
go vet ./...Optional but useful for concurrency-sensitive changes:
./scripts/run_race.sh
./scripts/run_goleak_pilot.sh- Keep changes focused and small.
- Add tests for bug fixes and new features.
- Prefer ASCII in source files unless required.
- Prefer the smallest correct implementation over extra abstraction.
- Do not widen public APIs unless the caller clearly needs it.
- Keep backpressure and ownership semantics explicit.
- Follow
CODE_OF_CONDUCT.mdfor community interactions. - Follow
SECURITY.mdfor vulnerability reporting (do not file public issues for security bugs).
- Describe the change and why it is needed.
- Include benchmark results for performance-sensitive changes.
- Update docs/examples when public behavior or APIs change.
- Keep one clear behavior change per PR when possible.
- Call out any runtime model, ownership, or compatibility tradeoffs explicitly.