Skip to content

Release v0.1.0

Latest

Choose a tag to compare

@staticpayload staticpayload released this 03 Jan 10:42

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 CLI
  • lattice-server - Sync server

Installation

Go Module

go get github.com/lattice-db/lattice@v0.1.0

Docker

docker pull ghcr.io/lattice-db/lattice:v0.1.0

Binaries

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