FastCarto database bindings
Project description
fastdb
fastdb is a C++ local database library designed as a fast, lightweight, and easy-to-use data communication layer for RPC and coupled modeling in scientific computing.
This repository now contains three closely related layers:
- C++ core — native storage engine, binary layout, and serialization primitives
fastdb4py— Python bindings via SWIG, with NumPy-oriented columnar access and shared-memory IPCfastdb4ts— TypeScript bindings via WebAssembly/Embind, focused on browser-friendly typed data access and schema-compatible table access
Core design goals:
- Zero-copy columnar access — efficient field-oriented access for high-volume numerical workloads
- Ref-graph support — Features can reference other Features across tables, forming typed object graphs
- Compact binary transport — save/load databases as binary buffers or files; shared-memory deserialization for zero-copy IPC
- Cross-binding consistency — Python and TypeScript bindings share the same native storage model and schema semantics
- Schema-driven codegen — Python
@featureclasses can serve as the source of truth; thefdb codegenCLI generates equivalent TypeScript schemas automatically - Portable payload primitives —
fastdb.schema.v1, shared binary buffers, and thefastdb4tsruntime let external RPC systems use FastDB as a schema-aware payload layer while those systems keep their own routing and execution semantics
Documentation map
- Python binding (
fastdb4py): seepython/README.md - TypeScript binding (
fastdb4ts): seets/README.md - C++ core (
fastcarto/fastdb): seefastcarto/README.md - TypeScript/WASM analysis docs: see
ts/analysis/ - Codegen CLI (
fdb codegen): see CLI tools below, or the full reference inpython/README.md
Changelog
See CHANGELOG.md for per-binding unreleased changes. For historical release notes, see the GitHub Releases page.
Installation
Python binding (fastdb4py)
pip install fastdb4py
TypeScript binding (fastdb4ts)
npm install fastdb4ts
Quick start
For a minimal end-to-end example, start with:
python/README.mdforfastdb4pyts/README.mdforfastdb4ts
If you are working on native internals or storage layout, start with:
Python Backed View Lifetimes
fastdb4py distinguishes owned Python @feature objects from backed table views. Owned objects keep normal __dict__ read/write behavior. Backed rows, checked numeric columns, StringColumn, and BytesColumn can be tied to a FdbViewOwner; after fdb.invalidate(owner_or_view), later checked reads or writes raise FdbViewInvalidatedError. Standalone FastDB tables remain trusted and return raw NumPy numeric columns by default, while integrations with reusable memory leases should pass FdbViewOwner(checked=True, ...) and use fdb.materialize(...) or value.to_owned() before retaining data beyond the lease. See python/README.md#backed-view-lifetimes for the Python API details.
For safety-sensitive integrations, pass writeable=False to expose read-only backed rows and checked numeric columns. This blocks row field writes and column writes even when the owner itself is an unchecked trusted owner.
Python ColumnEngine.truncate() with STR
fastdb4py ColumnEngine.truncate() now supports UTF-8 STR fields in two usage tiers:
- Default high-level path —
tbl.fill(..., name=[...])now routes raw strings through the native batch string-column API - Advanced prepacked path —
pack_utf8_column([...]) + tbl.column.name.fill_utf8(...)
For fixed tables, the high-level Table.fill(...) path batches numeric columns and STR payloads together. Raw string inputs are packed inside the native batch API, scalar BOOL columns use the same explicit bool parser as mutable engine writes before bulk numeric storage, ordinary U8 columns remain numeric casts, numeric columns still remain NumPy-backed after publication, and string columns are exposed as StringColumn wrappers via table.column.<name>. If your input already starts as Python str objects, prefer this default raw path; use the prepacked path only when an upstream stage already produced UTF-8 offsets/data buffers.
import numpy as np
from fastdb4py import ColumnEngine, Layout, F64, STR, feature, pack_utf8_column
@feature
class Point:
x: F64
y: F64
name: STR
orm = ColumnEngine.truncate([Layout(Point, 3)])
tbl = orm.table(Point)
tbl.fill(
x=np.array([1.0, 2.0, 3.0], dtype=np.float64),
y=np.array([4.0, 5.0, 6.0], dtype=np.float64),
name=["a", "bb", "ccc"],
)
# If you already own pre-encoded UTF-8 buffers, use the advanced path directly:
offsets_u32, utf8_bytes_u8 = pack_utf8_column(["a", "bb", "ccc"])
tbl.column.name.fill_utf8(offsets_u32, utf8_bytes_u8)
Python Call-DB Exact Export
For integrations that already own a generic call-db binding, try_export_call_db(binding, value) returns an existing buffer-protocol view when a value is already backed by an exact call-db-compatible single fixed Batch[Feature] table. Build such tables with the target table name up front, for example ColumnEngine.truncate([Layout(Point, n, name="return_0")]), then call encode_call_db(...) only when try_export_call_db(...) returns None. FastDB owns the exact-export decision; integrations such as C-Two should pass the generic binding and logical value rather than inspecting FastDB table internals.
Experimental Final-Backing Builds
build_call_db(binding, value, allocator, direct_required=True) is the experimental final-backing path for generic call-db payloads. FastDB computes one final DB byte length, asks the supplied allocator for one writable allocation, and writes the final backing without first publishing through WxMemoryStream().data().tobytes(). Fixed numeric call-db values use a mapped final-backing path that writes the initial C++ layout directly into the caller backing and fills columns there; prepacked string feature columns still use the C++ final writer. The allocator may be a native fdb.HeapFinalBackingResource, which returns a committed FinalBackingAllocation, or a Python allocator object that returns an allocation with .buffer, .commit(used_size), and .rollback(). Native final backing resources also work for fallback prepared plans, so callers can preserve fallback semantics when direct_required=False. prepare_call_db(..., direct_required=True) is stricter: it only accepts already-backed/importable layers and will not stage temporary call-db layers under a direct label.
Committed native FinalBackingAllocation objects can be passed directly to decode_call_db(...) or view_call_db(...). view_call_db(...) keeps the allocation owner alive while checked FastDB views are active; uncommitted or rolled-back allocations cannot be read.
FastDB also exposes experimental ScratchAllocator / HeapScratchAllocator names as the separate build-time scratch role. V1 keeps this role FastDB-owned and heap-backed; C-Two-style integrations should provide final backing first and should not assume dynamic builder scratch is transport memory.
For resource functions that author fixed-size columnar outputs with fdb.require(...), use call_db_build_context(binding, allocator) around the call. Inside the context, eligible fixed numeric Batch/Array slots are mapped directly over the caller allocation, and the later build_call_db(..., direct_required=True) commits that same allocation instead of allocating a second call-db buffer. The C++ fixed-layer builder writes the initial zero table section directly to the caller backing without retaining an equal-size table scratch vector. The allocator may be either a Python allocation protocol object or a native fdb.HeapFinalBackingResource; FastDB exposes only a context-scoped writable view for the native resource, while direct resource.allocate(...) remains hidden from Python.
allocator = fdb.HeapFinalBackingResource()
with fdb.call_db_build_context(binding, allocator):
cells, residual = fdb.require(
fdb.batch(Cell, rows=n),
fdb.array(fdb.F32, rows=n),
)
cells.fill(row_id=ids, x=xs, y=ys)
residual.fill(rs)
payload = fdb.build_call_db(binding, (cells, residual), allocator, direct_required=True)
V1 direct builds are intentionally narrow. The build_call_db final-writer path supports fixed columnar scalar payloads and backed Batch[Feature] values whose STR columns already have prepacked UTF-8 offsets/data. The call_db_build_context path is stricter and currently supports fixed numeric columnar slots only, because its final byte length must be known before user code fills the returned views. Object graph payloads, non-columnar BatchRequirement profiles, REF/list/bytes fields, dynamic push, scalar string arrays, and unknown-size string values use fallback, or raise FastdbUnsupportedDirectBuildError when direct_required=True.
CLI tools
fastdb4py ships a CLI named fdb for cross-language tooling. Currently it provides the codegen subcommand.
fdb codegen — Python → TypeScript schema generator
Generate TypeScript Feature classes from a directory of Python feature definitions:
fdb codegen --ts ./python_features/ ./ts_features/
This mirrors the input directory structure, generating one .ts file per .py file. Each Python Feature subclass becomes a TypeScript class with defineSchema(...) and declare fields.
Features:
- All scalar types (
U8–F64,STR,WSTR,BYTES,BOOL) and native Python types (int,float,str,bool) are mapped automatically - Feature references →
ref(ClassName), lists of Features →listOf(ref(ClassName)) - Circular/self-referential types → lazy refs
ref(() => ClassName)detected automatically - Cross-file dependencies → relative
importstatements in the generated TypeScript - Topological ordering ensures dependency classes are emitted before dependents
- Same class name in different files is legal — each file is an independent module, all are generated
Example input (geometry.py):
from fastdb4py import feature, F64, STR
@feature
class Point:
x: F64
y: F64
label: STR
Generated output (geometry.ts):
import { F64, Feature, STR, defineSchema } from 'fastdb4ts';
export class Point extends Feature {
static schema = defineSchema({
x: F64,
y: F64,
label: STR,
});
declare x: number;
declare y: number;
declare label: string;
}
C-Two Integration Boundary
FastDB owns storage engines, schema export, binary database buffers, backed view lifetimes, and generic Python/TypeScript call-db runtime APIs. C-Two owns CRM method planning, call-db binding derivation from CRM annotations, TypeScript helper generation through c3 contract codegen typescript --fastdb-schema, route identity, relay behavior, scheduler policy, and memory lease semantics. The FastDB fdb CLI now only generates generic TypeScript feature schemas; use the C-Two repository for C-Two-specific contract and client helper generation.
Performance Notes
| Pattern | Throughput | Notes |
|---|---|---|
table.column.x[:] columnar read/write |
~100 ns for any N | Zero-copy NumPy view, 1 SWIG call |
Table.fill(**cols) |
~2 µs per column | 1 SWIG call + memcpy per written column |
feature.read_all_scalars() |
~200 ns for 3 fields | 1 SWIG call for all scalar fields |
table.iter_reuse() row access |
~350 ns/row | Reuses Feature wrapper, no allocation |
for feat in table row access |
~1.2 µs/row | Allocates Feature wrapper per row |
feat.x single field read (db-mapped) |
~420 ns | 1 SWIG call |
FastSerializer.dumps/loads (Python, legacy) |
~70 µs (complex graph) | Retained for compatibility; not the foundation for new external RPC integration work |
FastSerializer.dumps/loads (TypeScript, legacy) |
~75 µs (complex graph) | Retained for compatibility; not the foundation for new external RPC integration work |
Recommended patterns by use case:
- Bulk read/write of one field across all rows →
table.column.x(columnar, zero-copy) - Bulk fill fixed-size tables →
ColumnEngine.truncate+table.fill(...) - Bulk fill pre-encoded UTF-8 buffers →
table.column.name.fill_utf8(...) - Iterate and process all fields per row →
table.iter_reuse()+feat.read_all_scalars() - Sparse random access →
table[i].field
Free-threaded Python (PEP 703)
fastdb4py includes preliminary support for Python 3.13+ free-threaded builds (python3.13t).
Thread-safety guarantees
| Component | Thread-safe? | Notes |
|---|---|---|
Module-level caches (get_class_schema, serializer schema) |
✅ Yes | Protected by threading.Lock; safe under both GIL and free-threaded builds |
ColumnAccessor column cache (table.column.x) |
✅ Yes | Cold path (first access) is lock-protected; hot path (cache hit) is lock-free |
Table row reads (table[i], iteration, iter_reuse(), fallback string lookup) |
✅ Yes | Per-table row materialization uses a read lock around native tryGetFeature(...) calls |
Feature instances |
❌ No | Instance-level _cache dict is not synchronized — use external locking or one instance per thread |
ColumnEngine / ObjectEngine / Table mutation |
❌ No | Not designed for concurrent mutation — create separate engine instances per thread, or synchronize externally |
| SWIG C++ calls | ✅ Yes | Long-running pure C++ operations release the GIL via %feature("threadallow") |
Recommended patterns for multi-threaded code
import threading
import numpy as np
from fastdb4py import ColumnEngine, Layout, feature, F64
@feature
class Point:
x: F64
# ✅ Good: each thread owns its own truncate view
def worker():
orm = ColumnEngine.truncate([Layout(Point, 1000)])
tbl = orm.table(Point)
tbl.fill(x=np.arange(1000, dtype=np.float64))
# ✅ Good: shared truncate engine with read-only access after publication
shared_orm = ColumnEngine.truncate([Layout(Point, N)])
# ... fill data ...
# Multiple threads can safely read table.column.x concurrently
# ⚠️ Caution: sharing Feature instances across threads
lock = threading.Lock()
feat = Point()
feat.x = 1.0
with lock: # external synchronization required
feat.x = 2.0
Build configuration
The CI tests against Python 3.13t (free-threaded) in addition to standard 3.12. The setup.py auto-detects Py_GIL_DISABLED and passes the flag to the C++ build.
Development
This project uses DevContainer for the development environment. See .devcontainer/devcontainer.example.json for configuration details. Requires Docker/Podman and the VSCode DevContainer extension.
Common development commands from the repository root:
./py_utils.sh --clean # remove C++ build artifacts and SWIG-generated bindings
./py_utils.sh --build # build C++ core + Python bindings
./py_utils.sh --test # run Python unit tests
uv run pytest tests/python -q # run the Python test suite directly
uv build # build the fastdb4py sdist + local wheel
bash ts/build-wasm.sh # build the WebAssembly module for fastdb4ts
npm run test:ts # run root TypeScript tests
fdb codegen --ts <input_dir> <output_dir> # generate TypeScript schemas from Python features
Build requirements depend on the layer you are working on:
- Python binding: C++17 compiler, CMake >= 3.16, SWIG >= 4.0, NumPy
- TypeScript/WASM binding: Emscripten, Node.js, npm
- Native core: C++17 compiler and CMake
Python release checklist
Before publishing fastdb4py, bump [project].version in pyproject.toml, refresh uv.lock, update the fastdb4py section in CHANGELOG.md, and verify that the release tag py/v<version> does not already exist. The PyPI workflow publishes only when pyproject.toml changes and the tag for that version is absent.
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 Distributions
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 fastdb4py-0.1.22.tar.gz.
File metadata
- Download URL: fastdb4py-0.1.22.tar.gz
- Upload date:
- Size: 681.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68c41b035dd2750e10c0c65f8ba8d0d6353f50a2e819ab1188594bcf9cf13100
|
|
| MD5 |
49d675358b45c7e91de2612d7c0cf27e
|
|
| BLAKE2b-256 |
133985e41fde03b68a51974b1d12ca99d1c98a7706b76aa50383e3c547a7c84e
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 303.2 kB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d40f86d1348bda23b64809541dfba94a6b38022dea474721659db7336b7104fd
|
|
| MD5 |
02ee1abc619c6c357ac4ab095dcbaec3
|
|
| BLAKE2b-256 |
1d8e3d4ace99ca63c41e022a338766b0e9317633ba9ee9826434712b4eab36c9
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 759.5 kB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea9ac05b769675dbfc8028c14933564ce6929dca2397cf4a915e733340db8b3
|
|
| MD5 |
e2c8f509fc10a43227607a5caddfd141
|
|
| BLAKE2b-256 |
6dd61e0101f65f5eeb3cab08d2f7647f1e84f108f7a704441b60e10e145a7db1
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 735.6 kB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab097a01248086b2a7a04ff5c7e25e9219fda7f4771e44e06ff50f5c6a4fa089
|
|
| MD5 |
5cd13a51aed3ce5b797dfe5739e1013e
|
|
| BLAKE2b-256 |
ca0b86a077bae890dbbab63240d61fb46ac0d1a77eeda67d846b7d1f77eb3204
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314t-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314t-macosx_11_0_arm64.whl
- Upload date:
- Size: 611.2 kB
- Tags: CPython 3.14t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64aca6a7dbd9432b5655bc6d61c1a94411b93babc95d2c74ece7825fedd6e587
|
|
| MD5 |
9d90332d823731d70cf24d30ac8d9a93
|
|
| BLAKE2b-256 |
df3d5522cbc9592107dbf8e490bb6067a9ba35f3f7b0d34244ad72e7a116934d
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314t-macosx_10_15_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314t-macosx_10_15_x86_64.whl
- Upload date:
- Size: 672.6 kB
- Tags: CPython 3.14t, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74fd6140b734e1b2139d729a032695da1e527275452e68574b6c1bdc62bd8406
|
|
| MD5 |
1005d3e89573aeac20893f7a687f438c
|
|
| BLAKE2b-256 |
aca5770c75b5e46339078138d53a3f652c7907d75685aeec72cecea5e286d696
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 294.5 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5711f778f9d3ba9eab5697bf197f7a5a1b63cf5e0bac7ead788e3f83d94f13ae
|
|
| MD5 |
741daa4f0c91ca39f399dfd9206fe96e
|
|
| BLAKE2b-256 |
4b2046ee35a895f173fbcd01727e20e47ccf1060e557326f9162024486155f58
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 766.5 kB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd3d3d1ce2131bc09c44012ccfdc5ff51ed76cb7c3380b269ac2c08495d66ad5
|
|
| MD5 |
12701fa2225b002d9f771447fa3d8873
|
|
| BLAKE2b-256 |
faab9829aa20ac5628fccffeda56b6e592b04ca4701a3ed43fc8ca9ac62d6cf5
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 738.0 kB
- Tags: CPython 3.14, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0fcedafe54bd64ec9e4578fd1460d15cbdfcc705daaecae61e10b11b710b1b5
|
|
| MD5 |
712be10d83c8df057923bf4a6f9e0e4f
|
|
| BLAKE2b-256 |
70946c7f5ace9aa31d222f9ee7a51efecc0cf94c2373da589b846211db9f837d
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 608.0 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf0d4cea1dc7d2ff87fff7e7b5baaed0eedc13a5376a9ade17b7193bd508fac4
|
|
| MD5 |
b901b55a796e8e61fafc081eee5acc29
|
|
| BLAKE2b-256 |
e756e14fc083bf24b837b16f624c08140dbbc28fdd9b1870aae3128fc26a2bab
|
File details
Details for the file fastdb4py-0.1.22-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 668.1 kB
- Tags: CPython 3.14, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0004eed504515bab4fbca2722e2aeb46c13db5823114756911ab09bacc0915bb
|
|
| MD5 |
e13c8fd63e7770aeac9295fbea36f7f0
|
|
| BLAKE2b-256 |
16f7e727c0d93a8ce3d9c1949d7ddb5d0177034bb4a0d032d1cf375d41dde49a
|
File details
Details for the file fastdb4py-0.1.22-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 288.9 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f30feab3ad01a128a96bf21c11b30539b5169860533d8aaff8e384cdb64115e0
|
|
| MD5 |
bfc8bd0f1cb98a755315f54728e374d9
|
|
| BLAKE2b-256 |
5ae7ffb59e58b9ae68cb693c27d990d18ca5d35d08c302582cea69d65e13e8cf
|
File details
Details for the file fastdb4py-0.1.22-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 766.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd3500fcc6a59ed243e0c29d57574a3529d1a9a54ae1c6a74219816aa6d0bc5
|
|
| MD5 |
8919869fcf57a78efbfeee63ad1fc94d
|
|
| BLAKE2b-256 |
e6c64d4a4a0557e5b32e8e5649388a4092481d33fcca953ceaf2b583feb095ac
|
File details
Details for the file fastdb4py-0.1.22-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 737.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700af70cefe4e3053d60a8ed59855660f8a765d32a0046277109c25bb078641b
|
|
| MD5 |
a7e1f301708a86bca7acce15c581850d
|
|
| BLAKE2b-256 |
b9590d9eb2ecd101d30502ac8853e57b9d3111be35a0b4d5bc596c29ed7e9e4d
|
File details
Details for the file fastdb4py-0.1.22-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 608.0 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6182aab4960a4e7bb6b86276bed9ec7fb92883ed1a24d3aea287fc16c74c73a1
|
|
| MD5 |
183ff0d8727a918ed945e107565f08b4
|
|
| BLAKE2b-256 |
081eac37b7c0b849bc776fecbbc224007ac138cc259d8c22f57f5b457db7fa32
|
File details
Details for the file fastdb4py-0.1.22-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 667.3 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6dc0d9c3f364e2a07cb487286b343893afbc6563862160bb61f0622e756a458
|
|
| MD5 |
e917842b389ac7b35f3c255d634d66cd
|
|
| BLAKE2b-256 |
29d7b0255acbb8244e040342afc54f9a26ee17585fb85b2f0543b06a930030f9
|
File details
Details for the file fastdb4py-0.1.22-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 289.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b17de0740c155496ec8c7bfc577bf89a67ee07e997049568fe6667a340d64d1
|
|
| MD5 |
7c93cf5660946237e04eb74cc5430af8
|
|
| BLAKE2b-256 |
ac8f62e33b6fe1e0d9ec4adaa5ed54ff8d59953e10942ad113b3fcd9b3bc71e6
|
File details
Details for the file fastdb4py-0.1.22-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 767.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4da536dcbbec5bf00c1172dfc499f4905b62932c57dbe3f7002c22c4deffba98
|
|
| MD5 |
7c8334440ba01dab103413a3078e1b8e
|
|
| BLAKE2b-256 |
b07e3755d80ed669c06c1ae10d61c3dfa86e3db0914858a9ca8d7da63e128f1c
|
File details
Details for the file fastdb4py-0.1.22-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 737.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc604d685505e5b43ff8c45ea5511ede4c0d18f0c057a174b831572e52debff5
|
|
| MD5 |
b5174b342d6015fcb9a3497d79345486
|
|
| BLAKE2b-256 |
2eb015c723523fa00fad3f70d740b10681a290627462fb2a0e2270bcc74a0810
|
File details
Details for the file fastdb4py-0.1.22-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 608.5 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aa896d7cbdff20b794114df9b326c91ff9bfbc2afa10e84c4f47e659db49614
|
|
| MD5 |
88a9ed555207d7df2b72cecd3e50dcc9
|
|
| BLAKE2b-256 |
0250d113aa74b1c9237ac5fffbc97d22551661f775d0a8b3de0b664b9d1ec125
|
File details
Details for the file fastdb4py-0.1.22-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 667.7 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a878d37fcbcef6cf346090d282cf752c2b907da0462ed5629f0c74d793704edf
|
|
| MD5 |
5f036a6d1bd1243fd47b20a2a257da90
|
|
| BLAKE2b-256 |
5bee8cdb8f90df8495df6b1fc481cbe570861788e6c53c3d4488523598139e2c
|
File details
Details for the file fastdb4py-0.1.22-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 288.2 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9c4fd567012147f288e7200317239ff6b995618a601adcec72e4645f0414633
|
|
| MD5 |
adb1fe99cb6f538c5dd4ce75617ba778
|
|
| BLAKE2b-256 |
133f726a0d66cda8a8bbcc7eb6179d26af7a35fb767e2a3d18361def92b7077f
|
File details
Details for the file fastdb4py-0.1.22-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 765.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70833b3a280fe8f0a99e6065ffa23ec7957a53c5470a74524318aebcb9d16e75
|
|
| MD5 |
3cbb225f53585c1a8d40949ebc63d51a
|
|
| BLAKE2b-256 |
7d2d72708a0eba05e35beabd080f492d6bec19c1178d67bfa412d06f4522f6de
|
File details
Details for the file fastdb4py-0.1.22-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 737.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc33c476194e66bb5929ff54489276278c2d8473e99e22e0f6e6cb529c485918
|
|
| MD5 |
74eccf3629117925c71a875afb44eb2c
|
|
| BLAKE2b-256 |
53773f4a326f0f0a6f07b90dc376f70ea14c87bde46cf5ac09d02c41076e9f67
|
File details
Details for the file fastdb4py-0.1.22-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 607.8 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6e09ded759fa6f05a51b0a22510bcf8aab5b9372339dc59a14a746c15b5581d
|
|
| MD5 |
55c346500fc4fe2adb44d69ec8a1b32c
|
|
| BLAKE2b-256 |
34319cf08bbb19c88a7b471260f0f4bb046b9979967178d36eaecedc57ac72d4
|
File details
Details for the file fastdb4py-0.1.22-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 670.1 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cea40ece98c6b50bacc428e8ffe784354fedc96a15b548396c9c2b14479397d
|
|
| MD5 |
cc391ce0360cf2b15f5646a4d88c8955
|
|
| BLAKE2b-256 |
94f070d7028842e7729b1c33713ef4040e0617b04364019dedb6416987de724b
|
File details
Details for the file fastdb4py-0.1.22-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 288.4 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29ebe5eb73747120a509eef48e9f5fe302c8feffa4435f2241c36da0c17f5656
|
|
| MD5 |
5580419602332cbfa45b287a73fc04f5
|
|
| BLAKE2b-256 |
6a40abe6866c4ca3ce59fb01b8c6ad637a6c62cbfa0320fa78576174f6d59058
|
File details
Details for the file fastdb4py-0.1.22-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 765.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
671d49faeb52eaa64960188f39c771ac89d1bde4485fea5f801b43dfc974114b
|
|
| MD5 |
82302c8638bede1f83e53c7af6eaaf39
|
|
| BLAKE2b-256 |
16c51d123cc72c384eb8330858bb4e933ba9542f4bc51e45f7206bce15488699
|
File details
Details for the file fastdb4py-0.1.22-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 737.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
860c05b9c40a0b4652e4c16e769d4f23a8ffc46c7b13370f15debbd2468297d9
|
|
| MD5 |
634d5f261e79e3b0b20291ed58c442c5
|
|
| BLAKE2b-256 |
9e4ff02dc298e5d8a234a58b0c8e1df0f1e880a3c6e384efe0be064ce26ef817
|
File details
Details for the file fastdb4py-0.1.22-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 607.8 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95115372f70fd72d4cf5c5cb4e4984223af9dbc7f8d214c25af0c854bcfeb2e2
|
|
| MD5 |
e9cb27306640402d63e66d1b9e40b796
|
|
| BLAKE2b-256 |
7912b87584633c5a3011df29016c58f949ffdd05edf95a02977d569ffc8f6ba7
|
File details
Details for the file fastdb4py-0.1.22-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: fastdb4py-0.1.22-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 670.1 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecf4bf6efac3c41c3483a506acccfd06fe3edc83f8dca026ce9fc1326e41c616
|
|
| MD5 |
645e6df03d435d404f5309a39b5eaf4e
|
|
| BLAKE2b-256 |
5b7688756c727fbd9f909c89979dd9bfaffb1151d9b7ebe9025b6857df5c355d
|