Skip to main content

just-cdb logo

A high-performance, completely self-contained CDB reader for SOFiSTiK® databases with a built-in SQL query engine.

PyPI Version Supported Python Versions Rust Edition License Live Web Demo

Open the live web demo
Visualize SOFiSTiK CDB files in 3D right in your browser — drag & drop a file, no installation required.

Features

An elegant, modern CDB reader designed to make extracting structural engineering data simple, robust, and fast:

  • Lightweight & Self-Contained: Completely free of commercial dependencies. Read and parse CDB files anywhere without heavy background installations or dynamic linking issues.
  • Run Anywhere (Windows, macOS, Linux): Built with native cross-platform capability from day one. Run analyses, automate reporting, or inspect files seamlessly on your Macbook, a Linux cloud server, or standard Windows PCs.
  • Instant SQL Queries: Forget writing complex binary parsing logic. This tool automatically mounts structural CDB data into an easy-to-query format, letting you use standard SQL filters, joins, and aggregations (e.g., extracting specific node coordinates or material properties).
  • Instant Loading & Memory Efficient: Employs ultra-fast virtual memory mapping and lazy loading. Even multi-gigabyte files open instantly because it only decodes the specific categories your code or query asks for.
  • Simple Command-Line & Python APIs: Comes with a user-friendly command-line interface (CLI) to quickly inspect file info, list categories, or export data to Markdown and JSON, alongside a clean Python API for your custom workflows.

Installation

We recommend using uv for Python package management.

If you want to use the just-cdb CLI globally on your system:

uv tool install just-cdb

Install it directly into your Python project:

uv add just-cdb

// or via pip
pip install just-cdb

You can run the CLI instantly without installing it:

uvx just-cdb

CLI Usage

After installation, the command line interface just-cdb is instantly available.

1. Show Metadata

Get key details about any CDB database file:

just-cdb info path/to/database.cdb

Output:

CDB File Information:
- Source             : path/to/database.cdb
- File Size          : 5_684_212 bytes
- CDBase Version     : v12.7.0.32
- Flags              : 0x00000001
- Records            : 1_420 / 2_500 (used / max)
- Total Pages (Keys) : 14
- Chain Head Block   : 142
- Page Dir Start     : 16
- Next Free Record   : 43

You can also run with the --verbose / -v flag to get a detailed, perfectly aligned breakdown of KWH categories present in the file:

just-cdb info path/to/database.cdb -v

Output:

... (CDB File Information) ...

Content Summary:
- Total Keys (KWH/KWL Pairs) : 14
- Unique Categories (KWH)    : 3

Categories present in this file:
- KWH    0 :      1 key
- KWH   20 :      5 keys
- KWH  100 :      8 keys

2. List All Keys

List all primary category key pairs (KWH / KWL) inside the database directory:

just-cdb keys path/to/database.cdb

3. Extract Raw Records

Retrieve binary payloads for any specific Key Word High (KWH) and Key Word Low (KWL) pair:

just-cdb records path/to/database.cdb 20 0

Output:

Found 1_005 records for Key pair (20, 0)
Record #0 (12_345 bytes): payload=0x68656c6c6f20776f726c6421

You can also use the --raw flag to write the raw binary payloads of all matching records directly to stdout (e.g., to pipe them to another command or save directly to a file):

just-cdb records path/to/database.cdb 20 0 --raw > category_20.bin

4. Query with SQL

Query your CDB structures using robust SQL with custom formats (json, ndjson, markdown, ascii):

just-cdb query path/to/database.cdb "SELECT * FROM node WHERE id > 10" --format markdown

Output:

| id | type | x     | y     |
|----|------|-------|-------|
| 11 | 1    | 12.34 | 56.78 |
| 12 | 2    | 90.12 | 34.56 |

Python API Usage

Use just-cdb programmatically inside your Python apps:

from just_cdb import CDBFile, OutputFormat

# Open the CDB file (runs in lazy-loading mode by default)
with CDBFile("path/to/database.cdb") as cdb:
    # 1. Fetch metadata
    header = cdb.get_header()
    print(f"Total pages: {header.total_pages}")

    # 2. Get list of all key pairs (kwh, kwl)
    all_keys = cdb.keys()
    print(f"Available keys: {all_keys}")

    # 3. Retrieve raw record bytes
    records = cdb.get_records(kwh=20, kwl=0)
    for rec in records:
        print(f"Size: {rec.size} bytes, payload: {rec.payload}")

    # 4. Query with SQL (loads referenced tables on demand!)
    rows = cdb.query("SELECT * FROM node WHERE id > 10 LIMIT 3")
    for row in rows:
        print(row)  # Raw dictionary format

    # 5. Format and stream queries directly to standard output or a file
    cdb.query_formatted("SELECT * FROM node", format=OutputFormat.Markdown)

Trademark Disclaimer

SOFiSTiK® is a registered trademark of SOFiSTiK AG. This project is entirely independent and is not affiliated with, sponsored, or endorsed by SOFiSTiK AG.

Download files

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

Source Distribution

just_cdb-0.4.2.tar.gz (173.1 kB view details)

Uploaded Source

Built Distributions

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

just_cdb-0.4.2-cp312-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12+Windows x86-64

just_cdb-0.4.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl (1.8 MB view details)

Uploaded CPython 3.12+PyEmscripten 2026.0 wasm32

just_cdb-0.4.2-cp312-abi3-pyemscripten_2025_0_wasm32.whl (1.8 MB view details)

Uploaded CPython 3.12+PyEmscripten 2025.0 wasm32

just_cdb-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

just_cdb-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

just_cdb-0.4.2-cp312-abi3-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

just_cdb-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file just_cdb-0.4.2.tar.gz.

File metadata

  • Download URL: just_cdb-0.4.2.tar.gz
  • Upload date:
  • Size: 173.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for just_cdb-0.4.2.tar.gz
Algorithm Hash digest
SHA256 6bbb812475afe5ceb82d1a4e449027604b1a51b3b01d5129f985cf9882fe5686
MD5 ae9726b997ea213fe5abaa8570458f3a
BLAKE2b-256 256d4f661ed85acafe793d4ebc096f6b52459df4a288cc395d43f5787c7cadec

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2.tar.gz:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: just_cdb-0.4.2-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 65e2c3232db016b7e944c7e2e4458c01851411784e4180009b98b69505bda1f9
MD5 31c9e17bb987a148f75d23d5324f45fc
BLAKE2b-256 ac89982a9a638e7581ffcc7342fcca772aa2bbe3df9718bdb17c3bf27d916344

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-win_amd64.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 ce798f9a925d2354d84709969bcc9d4a109c289046fc8b9094d5a9e167921d8e
MD5 ea94aa5ce7247fee64678dbb00265bba
BLAKE2b-256 6a1384a7ca9b1e4183ff7d2d4bfbdc24ee03249bea01bf61a8eb4226d0558f0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-pyemscripten_2026_0_wasm32.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-pyemscripten_2025_0_wasm32.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-pyemscripten_2025_0_wasm32.whl
Algorithm Hash digest
SHA256 03ac742652c23cde9c2e445a6ee50fb26fc182554d9d495440c9573d99f0df84
MD5 174ba5e9fbb5a1b280ac18f0ccd4a877
BLAKE2b-256 d2770d825f2bd65c446f007034de97a83768fb097448326e43ffd622a9605935

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-pyemscripten_2025_0_wasm32.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be6ddbc4faf66a1493d0b4c42fa633bdee9376389e96e398fad51d08431dc412
MD5 2fec75fc0ac88d45f963f2ff076db9c3
BLAKE2b-256 e8ea25b54094f3ff4abca070dbcfad5a5460849faad5379c1e46e803a8d7fc90

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6cbebc871a5530983152e72c0336f39c551f18274280ca30a87f9cddab96f5a4
MD5 0f0794424442664c5359cef0b33bfbbd
BLAKE2b-256 fe1e153c635b609ce234109d17cb4212026736a2624ba64daae6d85a2ef1c694

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f335e237dc5249ccfdb0d05f45062aca46423a9a2d3013e0344103ac150ab389
MD5 f95649d8ef8938600602fd0196aacb61
BLAKE2b-256 071cc08efbd48ce86f7b95d3502d185e3e9f3dc6ff046bb4888374585fe6ac19

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file just_cdb-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac2d5286862f6a30155aa3f20f61e35a304b1b565576d163885e4b7042af625d
MD5 cfe5cee72ec2c4b9153b0a998058f4bb
BLAKE2b-256 495caff5bad74a0b4c28a191ec037f1e3a794a625fa2895970aefac27dfd0055

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on oberbichler/just-cdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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