ApexBase is a high-performance embedded HTAP database with a Rust core and a Python-first API.
Install it, write local .apex table files, run analytical SQL, import/export DataFrames, and optionally expose the same data through PostgreSQL Wire or Arrow Flight. No separate database service is required.
Why ApexBase
| What you need | What ApexBase gives you |
|---|---|
| Fast local analytics | Columnar storage, vectorized execution, SQL aggregations, joins, CTEs, windows, and indexes |
| Low-friction Python workflows | ApexClient, Pandas / Polars / PyArrow conversion, file table functions, and simple local persistence |
| One engine for mixed workloads | HTAP design: fast writes, point lookups, analytical scans, transactions, and MVCC |
| Search built in | Full-text search, vector TopK, Float16/BFloat16/Int8/UInt8/1Bit/TurboQuant storage, and exact reranking from a retained source vector |
| Tool compatibility | PostgreSQL Wire for database clients and Arrow Flight for fast columnar transfer |
Install
pip install apexbase
Build from source:
python -m pip install maturin
maturin develop --release
30-Second Example: FTS + SQL + Vector Search In One Local File
from apexbase import ApexClient
with ApexClient("./rag-data") as client:
client.execute("""
CREATE TABLE articles (
title TEXT,
body TEXT,
category TEXT,
views INT,
embedding FLOAT16_VECTOR
)
""")
client.use_table("articles")
client.store([
{
"title": "Rust-powered local analytics",
"body": "A columnar embedded database for fast SQL and search.",
"category": "database",
"views": 4200,
"embedding": [0.10, 0.82, 0.20],
},
{
"title": "Hybrid retrieval for RAG",
"body": "Combine full-text recall, SQL filters, and semantic vector ranking.",
"category": "ai",
"views": 6100,
"embedding": [0.16, 0.74, 0.58],
},
{
"title": "SQLite migration notes",
"body": "Move local applications to an analytical embedded store.",
"category": "database",
"views": 2600,
"embedding": [0.80, 0.12, 0.10],
},
])
client.execute("CREATE FTS INDEX ON articles(title, body)")
# FTS recall + structured SQL guardrails + pgvector-style semantic rerank.
df = client.execute("""
SELECT
title,
category,
views,
cosine_distance(embedding, [0.12, 0.78, 0.25]) AS semantic_dist
FROM articles
WHERE MATCH('database')
AND category = 'database'
AND views > 3000
ORDER BY semantic_dist
LIMIT 5
""").to_pandas()
print(df)
ApexBase gives you pgvector-style semantic search, SQL filters, and full-text search in the same embedded database file. It is the kind of stack you would otherwise assemble from SQLite/DuckDB + FTS + pgvector, but without a server process or a separate search/vector service; results still convert directly to Pandas, Polars, or Arrow.
Performance At A Glance
Latest local snapshot (2026-08-15): ApexBase 1.29.0, 1M-row tabular dataset, 1M-vector dataset, Apple arm, Python 3.12.
| Area | Snapshot |
|---|---|
| Fair OLAP + OLTP comparison | 102 public tabular metrics tracked; ApexBase wins 87 / 102 in the benchmark harness. The remaining losses are the DDL gaps vs SQLite (Table DROP, Table CREATE+DROP cycle, ALTER TABLE ADD COLUMN, 1.3x–2.0x) and a dozen advanced-SQL metrics vs DuckDB at 1.2x–2.0x, plus NOT filter (4.6x) and ORDER BY LENGTH(...) (3.9x) as the two remaining larger gaps — down from the 1.5x–75x these metrics previously showed. |
| GROUP BY city | 2.0x faster than DuckDB in the representative snapshot |
| FTS search | 5.6x faster than SQLite in the representative snapshot |
| Batch vector TopK cosine | 7.1x faster than DuckDB in the representative snapshot |
Benchmarks are workload-sensitive. The default benchmark command tracks this public scoreboard; extended diagnostics live in benchmarks/bench_vs_sqlite_duckdb_extended.py. See the full reproducible setup in the Performance documentation.
Documentation
Start here: https://birchkwok.github.io/apexbase/
| Goal | Page |
|---|---|
| Get running quickly | Installation and Quick Start |
| Understand the model | Core Concepts |
| Use the Python API | Python Client Guide and API Reference |
| Write SQL | SQL Guide |
| Import files and DataFrames | Data Import |
| Use database tools or Arrow clients | Server Protocols |
| Search text or vectors | Full-Text Search, Float16 Vectors, and Vector Quantization |
| Embed from Rust | Rust Embedded API |
Interfaces
# Embedded Python
python -c "from apexbase import ApexClient; print(ApexClient)"
# PostgreSQL Wire + Arrow Flight together
apexbase-serve --dir ./data
# Individual protocol servers
apexbase-server --dir ./data --port 5432
apexbase-flight --dir ./data --port 50051
Lance Interop
from apexbase import ApexClient
with ApexClient("./data") as client:
client.use_table("articles")
client.to_lance("./articles.lance")
with ApexClient("./imported") as client:
client.from_lance("./articles.lance", table_name="articles")
Lance conversion uses Arrow tables as the handoff path. This keeps the in-process conversion lean and Arrow-native, while each format still writes its own on-disk layout.
License
Apache-2.0
Metadata
Release files for apexbase 1.32.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apexbase-1.32.0.tar.gz | 1.7 MB | Details |
Built distributions (wheels)
Total release size: 161.5 MB
Release files / apexbase-1.32.0.tar.gz
| Download URL | apexbase-1.32.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5e523a45f5fec9367d990238d76d5a7b52284450b82d1778ceec6f52195a796
|
|
BLAKE2b-256 checksum How to use checksums |
aecccf3d42cf1762b7ce36628e7912e1fe5e690a5f667bd0b053d73b99dea833
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp313-cp313-win_amd64.whl
| Download URL | apexbase-1.32.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3d0ec15bed146490526d52e273147bbf98b7d20299c3b7404ca834a34411336f
|
|
BLAKE2b-256 checksum How to use checksums |
80317cb0f78f389f70316dba33daa127eddc41c01ad8fc809538dff52a2d9679
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | apexbase-1.32.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b4c9e1dead407985f0cc03e5bc5e18dab5a62a04a56afe8e16e3c532eca0b221
|
|
BLAKE2b-256 checksum How to use checksums |
2f7bb0c39506307e40d986e1c3d5d4ef26b778fd958a03f8d200e36651fc8e60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | apexbase-1.32.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
96388437216174deddb260e495c8f2280a9001cb4a0d8f0548bbf93acaf3f1a7
|
|
BLAKE2b-256 checksum How to use checksums |
26abe347b0d035375794f3e515c09e3b40271942cf5b08287b7eb1dca62fd958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp312-cp312-win_amd64.whl
| Download URL | apexbase-1.32.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
69579ec22df8c7a5c698b2062e5de600ce74e9daa634c336ac07ae2af70dbe6f
|
|
BLAKE2b-256 checksum How to use checksums |
f3da0d2182f4562e849f4ede9ab7b3f57c08855ff4eec5b44c5bda7a9d06b7b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | apexbase-1.32.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
eef10983856905f1b94d4418858ff95e74d6bece0fbfb5ff92ec65cac23d515a
|
|
BLAKE2b-256 checksum How to use checksums |
583fe5ddab7de3b9d059ed0b6309a4f77aeb991ce5ac92fbd1fba3e2ecdd5322
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | apexbase-1.32.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
51e2608e46f730c4201c6073bb0d033a9a74f6d283011062d8d1f71b6f9442b3
|
|
BLAKE2b-256 checksum How to use checksums |
9773b6f26b7fc65f6334a39b3b8217206b3c2dccaa16f381858f4461de674dd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp311-cp311-win_amd64.whl
| Download URL | apexbase-1.32.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4e97df4814e9e4aca57a028df39cbb930b6aea7a2322f220fe05e0c6d2a17f27
|
|
BLAKE2b-256 checksum How to use checksums |
8c4ec007a7c51a97b1f72e955235bd8a054d0f7f4e173a3154d47de7820ad44a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | apexbase-1.32.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d8b05f8fc409885a80386994524eb87b1fc84b3f136734517c589831f1925d93
|
|
BLAKE2b-256 checksum How to use checksums |
53b6f5e7a6919cd6e4c783ea7194ce0fc50be673e7f0b03143d3b981c305a202
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | apexbase-1.32.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb9e9232aa42cf066c2fb9b323fabd2cb4fa687edd83162bfe3ca13a577b5dfb
|
|
BLAKE2b-256 checksum How to use checksums |
f865465884c9932b1e1fa6cea3806502ed85e035be4ca72ac8307ff7c129f84e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp310-cp310-win_amd64.whl
| Download URL | apexbase-1.32.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d8e86c52ec501b35b223289b97de175d5e3fd2d46bf2ac23506900f873a0d681
|
|
BLAKE2b-256 checksum How to use checksums |
3bcb1c244303c8a94d0011f29b9f09964e6f80968ed5c6915ab910cd9c6283fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | apexbase-1.32.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fa93ec3e6491446a7cb777518fe10c792e1e01f3ad3d31f179ac8a2d1a5930f6
|
|
BLAKE2b-256 checksum How to use checksums |
35eb61531539f1a1c7381c87b6c24ee19eceee0b3b60b9e0bf67455dd5a8bba8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | apexbase-1.32.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
84ccd3091f8f938c74832583973de376a73a26ee12d937c0d42870076b2575f0
|
|
BLAKE2b-256 checksum How to use checksums |
89e8d4276986e44c721458bf3ee7d6d87306b047c260acfe2b608524336bd53c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp39-cp39-win_amd64.whl
| Download URL | apexbase-1.32.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
53b7a2eb0974b5d38031f533f00b18b65d2528255890d0b89893ede7c885730d
|
|
BLAKE2b-256 checksum How to use checksums |
39d63575afa8b448ba3c289fecaf6901e05e8a3cb1bb0c450d79eff1b729b9dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | apexbase-1.32.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7aa7a5caf39b8c5bd9075d1307877c246a21fadfbe817d7893f59ca94260a52b
|
|
BLAKE2b-256 checksum How to use checksums |
f2bde92617490f1ebafdb902e89644000c5dd9921a9c6128545b005bf5807eaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / apexbase-1.32.0-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | apexbase-1.32.0-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2904ade5abe399337588ede67f5e4eeec9926ac1211cbc878f767ec630c7d767
|
|
BLAKE2b-256 checksum How to use checksums |
47a5291a8419a5d5edfd5cc1f2fc811c34e500bb8f69dcf73f98eafcac14b174
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|