HTTP API
# write
curl -X PUT http://localhost:8080/key/{key} \
-H "Content-Type: application/json" \
-d '{"value": "..."}'
# read
curl http://localhost:8080/key/{key}
# delete
curl -X DELETE http://localhost:8080/key/{key}
# range query — returns all keys in [start, end] inclusive, sorted
curl "http://localhost:8080/range?start=a&end=z"Example responses
# PUT
curl -X PUT http://localhost:8080/key/city \
-H "Content-Type: application/json" \
-d '{"value": "bangalore"}'
# {"key":"city","value":"bangalore"}
# GET
curl http://localhost:8080/key/city
# {"key":"city","value":"bangalore"}
# RANGE
curl "http://localhost:8080/range?start=city&end=name"
# [{"key":"city","value":"bangalore"},{"key":"name","value":"alice"}]
# GET deleted key
curl http://localhost:8080/key/city
# {"error":"not found"}CLI (Interactive Shell)
BedrockDB provides an interactive CLI for local debugging and inspection of the storage engine.
go run cmd/cli/main.goSupported commands
# basic operations
put <key> <value>
get <key>
delete <key>
range <start> <end>
# observability
stats
sstables
# exit
exitExample
bedrockdb> put user:1 abhiram
OK
bedrockdb> get user:1
abhiram
bedrockdb> stats
memtable_size=3
immutable=false
sst_count=1
bedrockdb> sstables
[0] data/sst-000001.sstRun
# HTTP API server
go run cmd/api/main.go
# CLI interface
go run cmd/cli/main.go
# docker
docker compose up --buildServer listens on :8080. Data directory defaults to ./data.