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)
33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
# 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
|