Roadmap

Building the Complete Graph Database

Anvil is built phase by phase with full test coverage at every step. Track our progress across 1017 planned tasks.
784 of 1017 tasks77%
21 Complete4 In Progress2 Planned
0

Project Scaffolding

Complete
8/8
Rust workspace with Cargo
React Router 7 browser app
CI pipeline (clippy, test, fmt)
Rust edition 2024, MSRV pinned
1

Core Graph Data Model

Complete
33/33
Primitive TypesNodeId, RelationshipId, LabelId, PropertyValue enum
Graph EntitiesNode, Relationship, Path structs
Schema & ConstraintsUnique, existence, composite key constraints
Graph APIFull CRUD trait with traversals and statistics
2

Storage Engine

Complete
30/30
Page-Based StoreFixed-size pages, LRU cache, mmap option
Record StoresNode, relationship, property, string, array stores
ID AllocationSequential with free-list recycling
Write-Ahead LogSegmented WAL, fsync, crash recovery, checkpointing
File Layoutgraph.db, properties.db, WAL directory, lock file
3

Indexing

Complete
19/19
B+ TreeOn-disk, range scans, bulk loading, concurrent access
Index TypesUnique, composite, full-text (BM25), spatial (R-tree)
Index ManagementCREATE/DROP INDEX, automatic maintenance
4

Transaction Engine

Complete
17/17
Transaction ManagerBegin/commit/rollback, savepoints
Concurrency ControlMVCC, 3 isolation levels, deadlock detection
RecoveryARIES-style redo/undo, WAL replay
Garbage CollectionVersion chain pruning
5

Cypher Query Language

Complete
78/78
Lexer40+ token types, Unicode, nested comments
ParserFull grammar: MATCH, CREATE, MERGE, DELETE, SET, WITH, UNWIND, FOREACH, CALL, UNION
Semantic AnalysisVariable scoping, type inference
Built-in Functions30+ functions: aggregation, scalar, string, math, list, path
Query PlannerCost-based optimizer, index selection, join ordering
Query ExecutorVolcano model, 25+ operators, multi-hop BFS, ALL SHORTEST
6

GraphQL API

Complete
36/36
Schema GenerationAuto-generated from graph, Relay connections
Queries & MutationsFiltering, ordering, pagination, nested traversals
SubscriptionsReal-time via graphql-transport-ws
Cypher PassthroughRaw Cypher via GraphQL
7

Server

Complete
39/39
HTTP ServerAxum/Tokio, CORS, REST + GraphQL + WebSocket
AuthenticationJWT RS256, JWKS, Argon2id, per-request sessions
ConfigurationTOML config, env vars, CLI flags, system path detection
Multi-DatabaseSchema isolation, database routing
7.2.1

Email Verification & Passwordless Login

In Progress
14/17
SMTP / Email ProviderSMTP with STARTTLS, webhook alternative, HTML templates
Email Configuration[auth.email] TOML section, 12 env vars, configurable TTLs
Account VerificationVerification token, GET /auth/verify, POST /auth/resend-verification
Login Verification GateBlocks login when require_email_verification=true and unverified
Passwordless OTPPOST /auth/otp/request + /auth/otp/verify, 6-digit codes, brute-force protection
Auto-Create User on OTPNew users auto-created with reader role on first OTP login
Rate LimitingMax 5 OTP requests per email per hour, max 3 attempts per code
JWT IntegrationBoth flows produce identical JWTs, auth_method in refresh token
Hammer UIPassword/Email Code tabs, OTP flow, resend verification on error
Email TemplatesBuilt-in verification, OTP, password reset templates with custom override
Document Collectionsauth.email_verifications, auth.otp_codes with TTL
Unit Tests16 tests: OTP generation, verification, login gates, email templates
User Node SyncSync email_verified to :User graph node
Token CleanupAuto-delete expired verification tokens and OTP codes
Integration TestsEnd-to-end OTP and verification flows in test-cypher.sh
8

CLI

Complete
20/20
Server Managementstart/stop/status, daemon mode, log file
Interactive ShellCypher REPL, history, parameter binding
Data OperationsImport Cypher scripts, config init
9

Hammer UI

Complete
65/65
Query EditorCypher highlighting, table/JSON/graph/plan views
Graph VisualizationForce-directed, focus mode, lasso, minimap, export
Schema BrowserLabels, types, keys, indexes, schema dropdown
Document ManagerCollection CRUD, sync rules, schema-filtered
Admin PanelUser/role management, event log, alerts (admin-only)
Data ImportCypher script upload with creation counts
Role-Based AccessAdmin-only nav, schema protection, JWT roles
10

Graph Algorithms

Complete
16/16
CentralityPageRank, betweenness, closeness, degree
PathfindingDijkstra, A*, BFS/DFS, ALL SHORTEST
Community DetectionLouvain, label propagation, connected components
OtherMST, triangle counting, node similarity
11

Performance & Scalability

Complete
19/19
Query PerformancePlan caching, result caching, parallel operators
Storage PerformanceLZ4/Zstd compression, tiered storage
BenchmarkingCriterion benchmarks, LDBC SNB workload
12

Operations & Reliability

Complete
13/13
Backup & RestoreOnline snapshots, incremental, point-in-time
ObservabilityPrometheus metrics, structured logging, OpenTelemetry
Data IntegrityCRC32 checksums, consistency checks
13

Clustering & Replication

Complete
7/7
Raft ConsensusLeader election, log replication
WAL StreamingLeader-follower replication, read replicas
ShardingHash/label-based, rolling upgrades
14

Ecosystem

Complete
22/22
Client DriversRust, TypeScript, Python, Go
Migration ToolingNeo4j Cypher dumps, CSV, GraphML
DocumentationmdBook site, API docs, tutorials
Testing2,785+ tests across 14 crates
15

Plugin System

Complete
98/98
Plugin FrameworkRust + Lua/Python/WASM/JS/TS/Starlark, sandboxed, hot-reload
APOC Library55 built-in functions: geo, text, collections, math, date
16

Native Document Store

Complete
57/57
Document ModelSchema-namespaced collections, composite keys, TTL
Query APIFilters, batch ops, paginated scan, REST endpoints
Graph-Document SyncBidirectional rules, conflict resolution, INCLUDE clause
Storage ModesUnified, split, shared/separate WAL
17

Row-Level Security

Complete
48/48
Policy DDLCREATE/DROP POLICY, ENABLE/DISABLE/FORCE RLS
Predicatescurrent_user(), current_roles(), session()
Sync PairsLabel policies auto-protect paired collections
Schema ProtectionLabel reservation, cross-schema mutation blocking
18

Database Functions

Complete
33/33
Function DDLCREATE/DROP/SHOW, typed parameters, defaults
ExecutionCALL...YIELD, inline in expressions, body caching
Hammer UICreate/edit/delete, test panel, call log
19

Triggers

Complete
39/39
Trigger DDLCREATE/DROP/ENABLE/DISABLE, priority ordering
Event TypesBEFORE/AFTER on INSERT/UPDATE/DELETE
Trigger BodyOLD/NEW variables, RAISE, cascade detection
Hammer UIManagement, activity log, dependency analysis
20

Observability

Complete
46/46
Event LogRing buffer with configurable retention
Query Analyticsp95/p99 latency, slow query detection
AlertsConfigurable rules, error rate thresholds
Dependency AnalysisTrigger cascades, function calls, sync interactions
21

Data Import & Export

In Progress
7/57
Cypher Script ImportCLI, REST, browser UI, Neo4j-compatible
CSV ImportHeader mapping, type inference, batch loading
JSON ImportNested document to graph mapping
GraphML ImportStandard graph interchange format
ExportCypher dump, CSV, JSON, GraphML
Example DatasetsMovies, social network, recommendations
22

Edge Functions

In Progress
6/64
Function RuntimeDeno/Node.js subprocess, HTTP triggers
Deployment & ManagementVersioning, rollback, resource limits
Database AccessGraph/document queries from function context
SecretsEncrypted environment variables
Local DevelopmentHot reload, debug logging, test harness
Hammer UIEditor, logs, deployment status
23

Hooks

Planned
0/44
Hook DefinitionCREATE/DROP/ENABLE/DISABLE HOOK DDL
System EventsON SERVER START/SHUTDOWN, CONNECT/DISCONNECT, SCHEMA CHANGE
Scheduled HooksCron expressions, distributed lock
Webhook IntegrationHTTP POST, retry policy, signature verification
Hammer UIHook management, execution history
24

Bolt Protocol

Planned
0/76
PackStream SerializationBinary encode/decode for all Cypher types
Chunked TransportTCP framing with Tokio async
Bolt HandshakeVersion negotiation (v4.4/v5.0)
AuthenticationHELLO/LOGON, credential validation
Query ExecutionRUN/PULL/DISCARD streaming
TransactionsBEGIN/COMMIT/ROLLBACK, state machine
Driver CompatibilityOfficial Neo4j drivers (Python, JS, Java, Go)
TLS SupportOptional bolt+s://
25

File Storage

In Progress
14/16
25.1 Storage SchemaProtected :storage.Bucket / :storage.Object / :storage.Upload labels, unique + content-hash indexes
25.2 Pluggable BackendsLocal content-addressed FS done; S3 / GCS / Azure scaffolded, return NotImplemented
25.3 RESTful API30+ /storage/v1 endpoints: bucket CRUD, object CRUD, copy/move/list, public, signed, render, usage, TUS
25.4 Cypher IntegrationBucket DDL + file_url / signed_url / file_size / file_hash helpers shipped; MATCH FILE / CREATE FILE deferred
25.5 Access Control (RLS)RLS auto-enabled on :storage.* labels, public-bucket short-circuit, service_role bypass, default policy set
25.6 Signed URLsHMAC-SHA256 tokens, separate signing key, configurable TTL, bucket-versioned revocation
25.7 Image TransformationsPure-Rust pipeline (image crate), width/height/resize/format/quality, content-addressed variant cache
25.8 Resumable Uploads (TUS 1.0.0)creation / expiration / checksum / termination extensions, staging-dir chunk merge, atomic finalize
25.9 Trigger IntegrationBEFORE/AFTER INSERT/UPDATE/DELETE on :storage.Object — reject by MIME, kick off thumbnails, block referenced deletes
25.10 Event LoggingStorageObjectCreated/Updated/Deleted/Accessed, BucketCreated/Deleted, QuotaExceeded, SignedUrlIssued
25.11 Quotas & LimitsPer-bucket / per-user / global byte caps, pre-flight Content-Length check, atomic doc-store accounting
25.12 Storage Configuration[file_storage] anvil.toml block, 16 ANVIL_STORAGE_* env vars, duration + size suffix parsing
25.13 Client SDK (anvilent)TypeScript / Rust / Python / Go drivers — storage namespace, .from() builder, TUS, signed URLs, transforms, streaming download
25.14 CLIanvil storage create-bucket / list-buckets / upload / download / ls / rm / sign / usage / gc — 41 tests
25.15 Browser UI (Hammer)Bucket browser, drag-drop upload (auto-TUS), inline preview, signed URL generator, public-link panel, usage dashboard
25.16 Documentation12 in-route docs sections under File Storage group: overview, quickstart, buckets, objects, cypher, rls, signed, transforms, resumable, backends, triggers, tutorials