Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
Adds a complete LSM-based storage engine with these features: - Single-writer based architecture for the storage engine - WAL for durability, and hey it's configurable - MemTable with skip list implementation for fast read/writes - SSTable with block-based structure for on-disk level-based storage - Background compaction with tiered strategy - ACID transactions - Good documentation (I hope)
1.2 KiB
1.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build Commands
- Build:
go build ./...
- Run tests:
go test ./...
- Run single test:
go test ./pkg/path/to/package -run TestName
- Benchmark:
go test ./pkg/path/to/package -bench .
- Race detector:
go test -race ./...
Linting/Formatting
- Format code:
go fmt ./...
- Static analysis:
go vet ./...
- Install golangci-lint:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
- Run linter:
golangci-lint run
Code Style Guidelines
- Follow Go standard project layout in pkg/ and internal/ directories
- Use descriptive error types with context wrapping
- Implement single-writer architecture for write paths
- Allow concurrent reads via snapshots
- Use interfaces for component boundaries
- Follow idiomatic Go practices
- Add appropriate validation, especially for checksums
- All exported functions must have documentation comments
- For transaction management, use WAL for durability/atomicity
Version Control
- Use git for version control
- All commit messages must use semantic commit messages
- All commit messages must not reference code being generated or co-authored by Claude