kevo/CLAUDE.md
Jeremy Tregunna 6fc3be617d
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
feat: Initial release of kevo storage engine.
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)
2025-04-20 14:06:50 -06:00

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