ApexBase¶
ApexBase is a high-performance HTAP embedded database with a Rust core and a Python API.
Use it when you want a local database that can ingest records quickly, run analytical SQL, interoperate with DataFrames, and expose the same data through embedded Python, PostgreSQL Wire, or Arrow Flight.
from apexbase import ApexClient
with ApexClient("./data") as client:
client.create_table("users")
client.store([
{"name": "Alice", "age": 30, "city": "Beijing"},
{"name": "Bob", "age": 25, "city": "Shanghai"},
])
df = client.execute("""
SELECT city, COUNT(*) AS users
FROM users
GROUP BY city
ORDER BY users DESC
""").to_pandas()
Start Here¶
-
Install ApexBase
Set up the Python package, build from source, or run the docs locally.
-
Run your first query
Create a table, insert rows, run SQL, and convert results to a DataFrame.
-
Understand the model
Learn how directories, databases, tables, schemas, durability, and results fit together.
-
Pick an interface
Use direct Python for embedded apps, PostgreSQL Wire for tools, or Arrow Flight for columnar transfer.
Documentation Layers¶
| Layer | Best for | Pages |
|---|---|---|
| Getting started | First-time setup and mental model | Installation, Quick Start, Core Concepts |
| User guide | Building an application with ApexBase | Python Client, SQL Guide, Data Import |
| Reference | Exact API and type details | Python API, Rust Embedded API |
| Performance | Reproducible benchmark snapshots | Performance |
| Feature guides | Deep dives into specialized capabilities | Full-Text Search, Float16 Vectors |
| Internals | Contributors and maintainers | Storage Architecture, Engineering Guidelines, HTAP Roadmap |
What ApexBase Is Good At¶
- Embedded HTAP workloads where a single local database must handle writes and analytical reads.
- Python data workflows that need Pandas, Polars, and PyArrow interoperability.
- SQL-first local analytics without running a separate database server.
- Vector search and full-text search in the same storage engine as structured data.
- Tool integration through PostgreSQL-compatible clients and Arrow Flight consumers.
Interface Summary¶
| Interface | Use when | Entry point |
|---|---|---|
| Python API | You are embedding ApexBase in a Python app or notebook | from apexbase import ApexClient |
| Rust API | You want direct Rust integration without Python | apexbase::embedded::ApexDB |
| PostgreSQL Wire | You want DBeaver, DataGrip, psql, BI tools, or libpq clients | apexbase-server or apexbase-serve |
| Arrow Flight | You need fast columnar result streaming | apexbase-flight or apexbase-serve |
Local Documentation¶
The GitHub Pages workflow builds this same MkDocs site on pull requests and publishes versioned documentation with mike. The version selector in the header can switch back to older docs after multiple versions have been deployed.