Python bindings for DBX high-performance database
Project description
dbx-py
Python bindings for the DBX high-performance embedded database.
Installation
From Source
cd bindings/python
pip install -e .
This will automatically build the Rust FFI library and install the Python package.
Quick Start
from dbx_py import Database
# Open an in-memory database
db = Database.open_in_memory()
# Or open a file-based database
# db = Database("my_database.db")
# Insert data
db.insert("users", b"user:1", b"Alice")
db.insert("users", b"user:2", b"Bob")
# Get data
value = db.get("users", b"user:1")
print(value.decode('utf-8')) # Output: Alice
# Count rows
count = db.count("users")
print(f"Total users: {count}") # Output: Total users: 2
# Delete data
db.delete("users", b"user:2")
# Flush to disk
db.flush()
# Close database
db.close()
Context Manager Support
with Database("my_database.db") as db:
db.insert("users", b"user:1", b"Alice")
value = db.get("users", b"user:1")
print(value.decode('utf-8'))
# Database is automatically closed
API Reference
Database(path: str)
Open a database at the specified path.
Parameters:
path(str): Path to the database file
Returns:
Database: Database instance
Database.open_in_memory() -> Database
Open an in-memory database.
Returns:
Database: Database instance
insert(table: str, key: bytes, value: bytes) -> None
Insert a key-value pair into a table.
Parameters:
table(str): Table namekey(bytes): Key datavalue(bytes): Value data
Raises:
RuntimeError: If insertion fails
get(table: str, key: bytes) -> Optional[bytes]
Get a value by key from a table.
Parameters:
table(str): Table namekey(bytes): Key data
Returns:
bytesorNone: Value data if found, None otherwise
Raises:
RuntimeError: If operation fails
delete(table: str, key: bytes) -> None
Delete a key from a table.
Parameters:
table(str): Table namekey(bytes): Key data
Raises:
RuntimeError: If deletion fails
count(table: str) -> int
Count rows in a table.
Parameters:
table(str): Table name
Returns:
int: Number of rows
Raises:
RuntimeError: If operation fails
flush() -> None
Flush database to disk.
Raises:
RuntimeError: If flush fails
close() -> None
Close the database and free resources.
Examples
See the examples/ directory for more examples:
basic_crud.py: Basic CRUD operations
Requirements
- Python 3.8+
- Rust toolchain (for building from source)
License
Dual-licensed under:
- MIT License — for open-source projects
- Commercial License — for proprietary/commercial use
See LICENSE for details.
For commercial licensing inquiries, contact: ByteLogicCore
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dbx_py-0.2.2.tar.gz.
File metadata
- Download URL: dbx_py-0.2.2.tar.gz
- Upload date:
- Size: 9.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3626edd2cfcf1fae3cd6d9f782b5781e807cb5360c107d875af718ec0ed474
|
|
| MD5 |
b9247dc0157d99e1a78b5d14d27a852b
|
|
| BLAKE2b-256 |
dba7b97be925162d5957d5771475169c660233ca6608cf6395e40ec593c3bedb
|
File details
Details for the file dbx_py-0.2.2-py3-none-any.whl.
File metadata
- Download URL: dbx_py-0.2.2-py3-none-any.whl
- Upload date:
- Size: 9.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c467c23f067e6ba91d8ad09d2a2c7a5b7177082be3bc0ea3598c46332d0bddb
|
|
| MD5 |
1f3c2786f0afd5e21fcbd9a763425af0
|
|
| BLAKE2b-256 |
b5541b2ec87313612e5aba328267919e59663093a2144b9f9180601751cc9972
|