Skip to main content

ApexBase



PyPI Python License

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, fuzzy matching, vector TopK search, and float16 embedding storage
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: ApexBase 1.23.0, 1M-row tabular dataset, 1M-vector dataset, Apple arm, Python 3.12.

Area Snapshot
Fair OLAP + OLTP comparison 72 public tabular metrics tracked; ApexBase wins 71 / 72 in the benchmark harness
GROUP BY city 2.3x faster than DuckDB in the representative snapshot
FTS search 170.2x faster than SQLite in the representative snapshot
Batch vector TopK cosine 10.7x 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 and Float16 Vectors
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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apexbase-1.28.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

apexbase-1.28.0-cp313-cp313-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.13Windows x86-64

apexbase-1.28.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

apexbase-1.28.0-cp313-cp313-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

apexbase-1.28.0-cp312-cp312-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.12Windows x86-64

apexbase-1.28.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

apexbase-1.28.0-cp312-cp312-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

apexbase-1.28.0-cp311-cp311-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.11Windows x86-64

apexbase-1.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

apexbase-1.28.0-cp311-cp311-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

apexbase-1.28.0-cp310-cp310-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.10Windows x86-64

apexbase-1.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

apexbase-1.28.0-cp310-cp310-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

apexbase-1.28.0-cp39-cp39-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.9Windows x86-64

apexbase-1.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

apexbase-1.28.0-cp39-cp39-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file apexbase-1.28.0.tar.gz.

File metadata

  • Download URL: apexbase-1.28.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0.tar.gz
Algorithm Hash digest
SHA256 110356d1fcac84021fac89c214b5b1227e3e76c0f8cde9b9fc53260d3a848788
MD5 89d807c16b54808d76fb5a0a9c11338d
BLAKE2b-256 f5e5d7d437b6e6749b846ebc35fbe4731866b64a0c5977020adf5ca4613f3ccc

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: apexbase-1.28.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ae8da1614e635101cb7ce612a9be2a969e3d1603e3047b6afe51652bb806281f
MD5 01dab2ff106db190c6dbcd8b77e0f12b
BLAKE2b-256 5437c93e275f1f97164cce37000bfce569ef3bc894e5c186271c435cd11014ab

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cdce31ca275e4de0de38e3d5fa7ed6d9616a422af9c007c4a9bcd8661132ae0
MD5 5be97f90911b46c9c277ba82ac287f08
BLAKE2b-256 94ff4234c2547207a7755be015409fec866489d5c7c66b6373426f61da3a919a

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8aaf5cf3bc8a76ec1af08b3c08d44427a5eb1d69e0ff913438da7d5385cf494b
MD5 f408c26244f9e1f1b8e563d4df097c0c
BLAKE2b-256 3e39c624d5d48fcbb26055f75ba03a859ea2a205f8151fb1118efef2d379ba52

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: apexbase-1.28.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 18fe70e8a434817eaed971512a5245087db82c17319cf962acd53de7e6af5847
MD5 1aad7c12f85818f1e748176f7377d1f2
BLAKE2b-256 f330e292e17ca651eb7800d107b584649f5480b9abb9ae60aa24e0ea6d0e5d15

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 816bc229050d6747fb7e375ccc9cc4a0a8d687d320532fce94e69b5f4f46bf99
MD5 dfaff82aad225d57ee9baf90bc31c678
BLAKE2b-256 3c50fc6b675ed53536832449727e4c4083696ef61d3aef05cc190c9184955782

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca3b9c1382150e4593fb83500bd2cfc90896451df1becc980077d067d14ebf2e
MD5 ec02cf3f1531c3feaf4186ebe449cee9
BLAKE2b-256 5e445e661ec03f2269af0c767df678d7a5258e272a016d6e9e5a7345a496ec43

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: apexbase-1.28.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2b25b23e5d71761c586b20b5415b7f8c90bb0e0bbc670c8115f3fab5bbd203fe
MD5 6eed1018b068006ae45553cb4ee70f8e
BLAKE2b-256 8f80c9e43e54a92926287e5d97f9ec926aa2435b19cc44bfd1a5b9a7c516ad43

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 182529a05e55f7f7102d62686af55cdd3d1523ce9a40ec4d03dd6b84a30cdc09
MD5 df11dfcf7b902973d16d7a0228864554
BLAKE2b-256 5031cb1f40c380fbe8e5b0a3263f3f04c42c248d9614b81165f265e49e59db22

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bab9370b122a050477050bd4438b48c3a78c9dde31f41ac8c925e2cfbf7ecc99
MD5 c17582a2b4d3a1886759bc1e36a61265
BLAKE2b-256 f4679097c6092748ba2286ab5924612429db41d8f0a48247fdcd22bc513cf1d6

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: apexbase-1.28.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c07bad9d79eb8578e6039d29478dbe24a7ef4c836247424607bcf1b3b2427c94
MD5 58e272ecee367e9e37c7ba009973375a
BLAKE2b-256 4ce9b7eb27bca1da7cb67635f664d6affb48a10f6b8aaab6e843d99660e7eefd

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 471a9daf62debec8070223cae40f0bf3a8caaa587a0cfd2563fda76a173fed67
MD5 0bb45e9d2173ca5f7339346e0043a210
BLAKE2b-256 a0db92ebba5b9d6bebc367dcc7a210cbe8b29b30181dd835d1b0a9cabb386512

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6e9d060af88051985c96a13ec660de78179318096f24e2227a23b2e103134c6
MD5 9824e74a4917897dd82b45ed76dcd06c
BLAKE2b-256 702a38cf70fabfc5d1d0d0fe08111b8739be2adeb2c4fdeb220d90a6ba09bc3c

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: apexbase-1.28.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for apexbase-1.28.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 58cb62ec2f74626dcbdc763eed1b970d30ed3a78743ee2ebcfe570c2b9097c5a
MD5 952512feac314162679ebe4618596b71
BLAKE2b-256 5a986ae85480aa1b3c9563352ed98fcbf58beb320473e22ac0dfc260d13e07ba

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 523b62a1e822032b69ed8be4239cb2ecc4214607033aaedba7c1d32cef37ec5c
MD5 f4e0cff83a71a08e53e87b6dfd10651c
BLAKE2b-256 45a26a4d0b03cfcb88d221038133d5e87cc5a7e1842636f0cb0b1782592b665a

See more details on using hashes here.

File details

Details for the file apexbase-1.28.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for apexbase-1.28.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a08c90e7f89259d6bfe86abadc1249bf44ee1ceeb6e64d38032e307309e1a483
MD5 8097d9e2b5ceb09eafecbb836d5ded0c
BLAKE2b-256 01e7a48371a2c71363f4e38aeb16121a6af1846480ca73af90e45291ba76ef1d

See more details on using hashes here.

Release history Release notifications | RSS feed

1.30.0

16 files

1.29.0

16 files

This release

1.28.0 This release

16 files

1.27.0

16 files

1.26.0

16 files

1.25.0

16 files

1.24.0

16 files

1.23.0

16 files

1.22.0

16 files

1.21.0

16 files

1.20.1

16 files

1.20.0

16 files

1.19.1

16 files

1.19.0

16 files

1.18.0

16 files

1.17.0

16 files

1.16.0

16 files

1.15.0

16 files

1.14.0

16 files

1.13.0

16 files

1.12.0

16 files

1.11.0

16 files

1.10.0

16 files

1.9.0

16 files

1.8.0

16 files

1.7.0

16 files

1.6.0

16 files

1.5.0

16 files

1.4.0

16 files

1.3.0

16 files

1.2.0

16 files

1.1.0

16 files

1.0.0

16 files

0.6.0

16 files

0.5.0

16 files

0.4.2

16 files

0.4.0

16 files

0.3.0

16 files

0.2.3

16 files

0.2.2

12 files

0.2.1

2 files

0.2.0

1 file

0.1.0

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page