Skip to main content

FastCarto database bindings

Project description

fastdb

PyPI version npm version Run Tests

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 IPC
  • fastdb4ts — 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 @feature classes can serve as the source of truth; the fdb codegen CLI generates equivalent TypeScript schemas automatically
  • Portable payload primitivesfastdb.schema.v1, shared binary buffers, and the fastdb4ts runtime let external RPC systems use FastDB as a schema-aware payload layer while those systems keep their own routing and execution semantics

Documentation map

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:

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 pathtbl.fill(..., name=[...]) now routes raw strings through the native batch string-column API
  • Advanced prepacked pathpack_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 (U8F64, 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 import statements 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 rowstable.column.x (columnar, zero-copy)
  • Bulk fill fixed-size tablesColumnEngine.truncate + table.fill(...)
  • Bulk fill pre-encoded UTF-8 bufferstable.column.name.fill_utf8(...)
  • Iterate and process all fields per rowtable.iter_reuse() + feat.read_all_scalars()
  • Sparse random accesstable[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


Download files

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

Source Distribution

fastdb4py-0.1.21.tar.gz (681.4 kB view details)

Uploaded Source

Built Distributions

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

fastdb4py-0.1.21-cp314-cp314t-win_amd64.whl (303.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (759.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (735.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp314-cp314t-macosx_11_0_arm64.whl (611.2 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

fastdb4py-0.1.21-cp314-cp314t-macosx_10_15_x86_64.whl (672.6 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

fastdb4py-0.1.21-cp314-cp314-win_amd64.whl (294.4 kB view details)

Uploaded CPython 3.14Windows x86-64

fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (766.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (738.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp314-cp314-macosx_11_0_arm64.whl (608.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fastdb4py-0.1.21-cp314-cp314-macosx_10_15_x86_64.whl (668.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

fastdb4py-0.1.21-cp313-cp313-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.13Windows x86-64

fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (766.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (737.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp313-cp313-macosx_11_0_arm64.whl (608.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fastdb4py-0.1.21-cp313-cp313-macosx_10_13_x86_64.whl (667.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

fastdb4py-0.1.21-cp312-cp312-win_amd64.whl (289.4 kB view details)

Uploaded CPython 3.12Windows x86-64

fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (767.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (737.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp312-cp312-macosx_11_0_arm64.whl (608.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fastdb4py-0.1.21-cp312-cp312-macosx_10_13_x86_64.whl (667.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

fastdb4py-0.1.21-cp311-cp311-win_amd64.whl (288.3 kB view details)

Uploaded CPython 3.11Windows x86-64

fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (765.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (737.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp311-cp311-macosx_11_0_arm64.whl (607.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fastdb4py-0.1.21-cp311-cp311-macosx_10_9_x86_64.whl (670.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

fastdb4py-0.1.21-cp310-cp310-win_amd64.whl (288.4 kB view details)

Uploaded CPython 3.10Windows x86-64

fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (765.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (737.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

fastdb4py-0.1.21-cp310-cp310-macosx_11_0_arm64.whl (607.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

fastdb4py-0.1.21-cp310-cp310-macosx_10_9_x86_64.whl (670.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file fastdb4py-0.1.21.tar.gz.

File metadata

  • Download URL: fastdb4py-0.1.21.tar.gz
  • Upload date:
  • Size: 681.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastdb4py-0.1.21.tar.gz
Algorithm Hash digest
SHA256 4295f6c671a61c0c7d9983c452518d8a58fecfc62564a7fe65e2c0714e88aecb
MD5 d368a903f966048b5e044068398e9f23
BLAKE2b-256 4a064b8e5fd6e806362bfb79a3fd515928ae615ebae790b6ff6c929f166c29cf

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-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

Hashes for fastdb4py-0.1.21-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 d99e3f00f52db563870bddd77abe31f89d60148cdc5d2fec0ec954872f83bf2c
MD5 fb15ff65576a9d1fa1dce85b62dd290e
BLAKE2b-256 2712b28ed3898db582fb0167d77102f50fb7b15ed5879241a02e6411a9caa49f

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6020b6ceb6f1cfe4e088b006b3ab254251823c788c7a9dadf89e570f17770845
MD5 216c32342d40eb96fff9635eaa64e3d4
BLAKE2b-256 9ef0b622a33b364566c6d70868145895153233c5c0fc5a7f391d49b4442b4669

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 503b67b1759b17e2fbf5e9091749686587b2ca39f895d1a9147f10476b14a8d0
MD5 31d5618d96390d8828c44d76fa1a74dd
BLAKE2b-256 8fe1631e55301b545bb8412161f5d3706a31800b6cc6ca1b2b533c464c820922

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc59a6e86f830c387e94a572c398b3e651bccb637709d829d7b08c8cae3ac4a6
MD5 5c29b62b3a247c4f0e2e9a88ec34f72d
BLAKE2b-256 e5b5b5b50c06f2021c8f48da6e5bcccc6ff2fcb192cfb0619bce26d480ab0e16

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3ebf84e8d0d168c23c67487c12b7fbe80ba8bfa01709ec1e806cf6e043cb0890
MD5 50e013e15e78cddc13f034be293c84f9
BLAKE2b-256 85b7e5747e18b7a5db5f0b67b4e3bc288d24b3faba742fe39595f919251fe214

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 294.4 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

Hashes for fastdb4py-0.1.21-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e2e2646885bfa0761152a063649d79e8a226bbf403e204a069030faafdc76fcf
MD5 62c0313f1dc46e208f42c5bc0bb7048b
BLAKE2b-256 7f601203205a7f110b5ae6e938f6fd7721f5f206b306b2c123755e04b4e4356f

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52a2d026c48bfa5c13141b0ac7702ce4fd6d928d650fee807e5da334787248d5
MD5 254c01836163d212da1301ab6d681aee
BLAKE2b-256 f61cbf07102b13469649a8f31fa12e3fdc2fb9ba8b9591e8caa2e0b675fd9cf3

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aa0d2149a4168ba407793f5e10bd91cc4c3102bb03ac2ef54fef531d2f065c24
MD5 07c48410aaafc6cfd9b7e85b855e8ea7
BLAKE2b-256 0ccb12772fc6dbf98ea80e942d43b44a4a4e92a91f10d594b9d419f272638ee1

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2e3849c9ac525cad8afcf1a15d6e515a46288b8a0a0705048d62f8526437287
MD5 1815a9a1d85d1ed5086cfd9f526333cf
BLAKE2b-256 65c1d86803c379d5a8e275b7be4729e8bf1f8360738a7f6866a85eec75955fcf

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 16da49c794c2e0ccaccbd97d2f988d8bf4bc4af5cf196bf221ec48c2a75de42b
MD5 8b01c8cb6fa31f55898ea87f893c7a00
BLAKE2b-256 42cf590e3eaf7ecb59aaec5a4798e74db0d770aedc319f09c8b2f736c419db95

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-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

Hashes for fastdb4py-0.1.21-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 701ef82cb89f476aff5512eccca1172372fdfee0229c0121b3f93a6fe29bb953
MD5 d0f6f51ac629c36e7dd20406c6a5ceeb
BLAKE2b-256 b27b72c9a4681a13b29c51c948a344b8999efb509725519c125e4a8f6819d314

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea2441807441853da5ecb7058fb5cfd2cde69cf412a20e2366d099dbd15713ec
MD5 c189388dd630356b79cad66669a5862d
BLAKE2b-256 783ed2cb2338b08daf0fe453763791d973c4f0a680aab36789ca77f2a541dd02

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8cd0714bd9a88c3dfc010c873d9743344284f9183b02db41b4095edde8917bdd
MD5 27408244410f3f0d9ef9b8d0cc04d45b
BLAKE2b-256 8c66ec3c03a915c64c7ab9bde898bca4c5debf089a43790eee980b8eae1dc18e

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbcb521fe85c3b0ee7d9c89020ff121c82c060768c6648f965e9aeb315b90916
MD5 4d78babb7818906472e0077e851fb42d
BLAKE2b-256 06feb1def6f83eb1ac3e76cf59c52c6288e2faf8480e03232f4c05edf1ce5219

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f0c2dde90b66b1ec929c3c025eadb430b8378b69d2c535ca98edc23bf620022d
MD5 825d09df43ad34c64a6a78d5441061cd
BLAKE2b-256 e29f0f35af4f8f10f3e765c2beb2b918e82828a0686742c250149db73379deed

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-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

Hashes for fastdb4py-0.1.21-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 10d7d345cf0bd5184e229aaeed62af7c103999d4491ca2ae9b208abdda80db93
MD5 e488ad4125b9fe10ba3b5ba7f62eae68
BLAKE2b-256 4e4d777d61e9e919208d000665962039d40c0a95de1cceeb4a1b753298b241d5

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72731338a1d51d57afeb8b111303db67b6679a32256462893377637ed0a8649d
MD5 3dec537151094ce5e2909bf6c092af43
BLAKE2b-256 36e5a0197a5a2d6be5e16446b154b866c741a298249547b3eb055b9a9b800e2f

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 139e6515e49b76fd1f690a9e5818c179c8d66f6d9b6333c8f550a9e9371545f9
MD5 4467714f273f498b0cb63532c65fb0ce
BLAKE2b-256 9ca08f56656a1cf1759a0bb64bc9dcc5f99deb77954c3de7b2d323b3065a7c95

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 143480606f334fd4a149a0d76bbabb9592cba99245b41339a8473bde71a523f4
MD5 2bec29a1a08d9ced4ac533d51220d6b9
BLAKE2b-256 f732c35e117d6f430379b20c58108773cb4850df3ca52ac5c0d732d9dab41356

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 440b58bce586b806f568d46e845c0184c6b1ba0bbd8823a20ef5da014552f7c0
MD5 0a510940da67f61424e4d64eca9c775c
BLAKE2b-256 036de6fd1d3eb1233afa5e8ad456b7575ddbbca6a73477de0cd56b8e256fb4ce

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 288.3 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

Hashes for fastdb4py-0.1.21-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 36f9ad33025e7255d4275e90fef2e32c6fdb72a16cb56828862f6cd46b51f70f
MD5 2fa28c85ca9b44b53d4c0e69410fe828
BLAKE2b-256 3be5459580972d9b7475b379801062fe64397405a9571cd44ccdc15ca397da9c

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebe7eeffe52bf0e6b2aed5d07555f5002b04be26c37b66932a0d8bcfa5c3ec50
MD5 ae630571221792b1f91c8a5aafdc7043
BLAKE2b-256 38d449392d336e892026474c095101239b286f55c173fc88962fff790f946e95

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb118dcc17f170956a89fe2a3057979d992d0c5b978436d140f9b5ef723cedc6
MD5 65ad03a90912bdd9539ae8ba4110549b
BLAKE2b-256 1b1892bf28581696895fe15e70ec49a6cbb66745138cda392db8a0c4420dad58

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5e1d848a52ddede385c44743f9dbb9d75b4d539a8fae238b54a783057bfef64
MD5 25c07d0d6ed9cd1a1212cb49ab506e99
BLAKE2b-256 e9d1dbf0dea66e91c212e58286a6feeddfb045e795a83d75f2fac9aaef6b18e0

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 50c1391d46a13c074b6100f0c57c6ea2bd8bf4b90955b3e14512b5285f30710f
MD5 8740cf053d46aaf304a011e30d6a4111
BLAKE2b-256 a01bf9739c670d15c75eda63565407e0d69db03af0f69249dfa46a4c2f3caa3b

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: fastdb4py-0.1.21-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

Hashes for fastdb4py-0.1.21-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2727ff4ae2f0b4a18e55f7df16877482562c610885160ca7cc2ba1e84388ffdd
MD5 97baea6bfaef95c6ea0c338d5dc4d77d
BLAKE2b-256 2c5bba5628a8e0b70cf09b31004b9c8f80abb2f3ff99d8b0c96766baf43a2fc8

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b5999498d61c3740b4049866e17cdbb09c16c6a6c2d9f94ed2924b215d7e9af
MD5 c55e080543c0f22a770bfde941314299
BLAKE2b-256 69f8b6d86b1312c422160304ed1ede81bbffe5edaf5de0e0d5417fb14417fc32

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1110181e86cde60f4e7a65fac24ad3b4a32df086b1255eea93040ba524372f45
MD5 ee958b0aa613315ad0a11e9a2090ff35
BLAKE2b-256 e127683c990d8ab7717c1521ef8fe38f6ecc53be86838a86a534c88bda0dd5ce

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b1d47422541fcc7c33c9d75b8031be7c1beb08ea08c28e92f28a99497bc07e9
MD5 50f615d6fc76a53ab3beea6d5150767d
BLAKE2b-256 38e683f838c9bb08d0444f26fe95ab25046896cfb62aad4a05e36c235303f3f0

See more details on using hashes here.

File details

Details for the file fastdb4py-0.1.21-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for fastdb4py-0.1.21-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 be7f1da8159319a44fa984d70cbc391a26ed04504d94f94a250ae43048d2b216
MD5 b8520b7b1091a5ed1e41d8859709ef82
BLAKE2b-256 6abf813f6f876374623c4b6597ff620425bc270e88996f3097e93844fb3cefb3

See more details on using hashes here.

Supported by

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