Thanks for your interest in contributing to Streambed! Here's how to get started.
-
Prerequisites: Go 1.22+, Docker, CGO enabled (required for go-duckdb and go-sqlite3)
-
Clone and build:
git clone https://github.com/viggy28/streambed.git cd streambed go build -o streambed ./cmd/streambed -
Run locally:
docker compose up -d ./streambed sync \ --source-url="postgres://postgres:test@localhost:5432/postgres" \ --s3-bucket="streambed" \ --s3-endpoint="http://localhost:9000" \ --s3-prefix="test" \ --query-addr=:5433
# Unit tests
go test ./internal/... ./config/...
# Integration tests (requires Docker)
./scripts/test-integration.shIntegration tests use the integration build tag and run against Postgres (port 5434) and MinIO (port 9002) from test/integration/docker-compose.yml.
- Fork the repository and create a feature branch from
main - Make your changes
- Ensure tests pass (
go test ./internal/... ./config/...) - Open a pull request against
main
Keep PRs focused — one logical change per PR makes review easier.
Open a GitHub issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Streambed version and environment details
Open a GitHub issue — we're happy to help.