← Back to archive

Repo of the Day

matrixorigin/matrixone

Published: Sep 26, 2026

Open repository ↗

AI-native HTAP database with Git-for-Data and built-in vector search, serving as the data and memory backbone for intelligent agents and applications

Summary

MatrixOne is an HTAP database written in Go that combines transactional, analytical, full-text, and vector search workloads in a single MySQL-compatible engine. Its distinguishing feature is "Git for Data" — zero-copy snapshots, time travel, branching, merging, and rollback applied to database state, as described in the project's published arXiv paper.

What it is useful for

The system targets applications that need transactional and analytical queries, semantic search, and version control of data without maintaining separate systems. The README positions it as a replacement for a typical stack combining MySQL for transactions, ClickHouse for analytics, Elasticsearch for search, and Pinecone for AI vectors, claiming to remove the ETL and sync work between those systems. Use cases documented in the tutorials include RAG applications, hybrid search that combines vector and fulltext scoring, instant clones for multi-team development, and safe production upgrades via snapshot rollback. Engineers building AI applications that need both structured data and vector memory in one place may find the integrated approach useful, particularly since the system advertises a Pinecone-compatible vector API alongside its native IVF and HNSW indexes.

How engineers can use it

The README provides a quick start using Docker, a MySQL client, and the Python SDK:

docker run -d -p 6001:6001 --name matrixone matrixorigin/matrixone:latest
mysql -h127.0.0.1 -P6001 -p111 -uroot -e "create database demo"
pip install matrixone-python-sdk

The SDK example shows defining an SQLAlchemy-style model with a vector column via create_vector_column(8, "f32"), creating an IVF index through client.vector_ops.create_ivf, and running an L2 distance query. The fulltext example uses boolean_match('title', 'content').must('machine').must('learning').must_not('basics') for boolean search over indexed text.

For distributed testing, make dev-build && make dev-up runs multiple compute nodes locally behind a proxy on port 6001. Production deployment uses the separate mo_ctl standalone tool, and building from source requires Go 1.26.4 or later plus GCC/Clang. Tutorials cover Java, SpringBoot, Django, Gorm, C#, and TypeScript clients.

Documented constraints: only macOS and Linux platforms are listed in the README badges, and the MySQL compatibility is a targeted subset, so engineers should verify their specific SQL, driver, and protocol requirements against the project's docs before adopting it.