thanks for your interest in contributing.
goxe aims to stay small, fast and maintainable. please keep changes focused and minimal.
requirements:
- go 1.25.5+
clone and build:
git clone git@github.com:DumbNoxx/goxe.git
cd goxe
Task build this executes:
go build -o bin/goxe ./cmd/goxe if you don't use task, run the command directly.
run locally:
./cmd/goxe- prefer simple, readable code over clever abstractions
- avoid unnecessary dependencies
- keep allocations and performance in mind
- document exported functions
- follow standard go formatting:
go fmt ./...we use task as the primary development runner.
run benchmarks:
Task testthis executes:
go test -bench=. -benchmem ./cmd/goxeif you don't use task, run the command directly.
guidelines:
- include benchmarks for performance-related changes
- include unit tests for bug fixes when possible
- avoid flaky timing-based tests
- keep tests fast and deterministic
use clear, descriptive commit messages:
feat: add udp buffer optimization
fix: prevent race condition in aggregator
docs: update readme
small commits are preferred over large, mixed changes.
before opening a new issue:
- check if it already exists
- provide a clear description
- include logs or reproduction steps when relevant
feature requests should explain the use case.
- fork the repository
- create a feature branch
- implement your change
- add tests if applicable
- open a pull request
please keep pull requests focused on a single change.
large refactors should be discussed in an issue first.
goxe prioritizes:
- performance
- simplicity
- maintainability
if a change conflicts with these goals, it may not be accepted.
thanks for contributing.