Releases: scalarian/lattice.db
Releases · scalarian/lattice.db
Release v0.1.0
Release v0.1.0
Release Date: January 3, 2025
Overview
This is the initial release of LATTICE.DB, a local-first embedded database with CRDT-based synchronization for resilient multi-device applications.
Highlights
- Embedded database with ACID transactions and MVCC
- CRDT-based sync enabling conflict-free multi-device collaboration
- End-to-end encryption using AES-256-GCM
- Production-grade durability with WAL and checksums
- CLI tools for database operations and maintenance
What's Included
Core Database
- WAL-based storage with automatic checkpointing
- Page-based structure with CRC32 checksums
- MVCC transactions with serializable isolation
- Document model with schema validation
- Primary and secondary indexes
Query Language
- SQL-like SELECT syntax
- WHERE clause filtering (=, !=, <, >, <=, >=)
- ORDER BY with ASC/DESC
- LIMIT clause
CRDT Types
- LWW Register (Last-Writer-Wins)
- OR Set (Observed-Remove)
- PN Counter (increment/decrement)
- CRDT Map for nested structures
Sync Protocol
- Version vector causal tracking
- Merkle tree diff computation
- Content-addressed chunk transfer
- E2E encryption protocol
Cryptography
- ECDH key exchange (P-256)
- AES-256-GCM encryption
- Ed25519 signatures
- Double ratchet for forward secrecy
CLI Tools
lattice- Database CLIlattice-server- Sync server
Installation
Go Module
go get github.com/lattice-db/lattice@v0.1.0Docker
docker pull ghcr.io/lattice-db/lattice:v0.1.0Binaries
Download from: https://github.com/lattice-db/lattice/releases/tag/v0.1.0
Quick Start
package main
import (
"github.com/lattice-db/lattice/pkg/lattice"
)
func main() {
db, err := lattice.Open("./data", nil)
if err != nil {
panic(err)
}
defer db.Close()
tx, _ := db.Begin(true)
doc := lattice.NewDocument()
doc.Set("name", "Alice")
tx.Insert("users", doc)
tx.Commit()
}Verification
SHA256 Checksums:
SHA256SUMS values will be generated at release time
Documentation
Known Limitations
- Query optimizer not yet implemented
- Concurrent write throughput limited by single-threaded WAL
- No incremental backup/restore
- Sync protocol may change before 1.0
- TypeScript SDK is placeholder only
Upgrade Notes
This is the initial release. No migration needed.
Contributors
Full Changelog
https://github.com/lattice-db/lattice/compare/initial...v0.1.0