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.1.tar.gz (167.9 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.1-cp312-abi3-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12+Windows x86-64

just_cdb-0.4.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl (1.2 MB view details)

Uploaded CPython 3.12+PyEmscripten 2026.0 wasm32

just_cdb-0.4.1-cp312-abi3-pyemscripten_2025_0_wasm32.whl (1.2 MB view details)

Uploaded CPython 3.12+PyEmscripten 2025.0 wasm32

just_cdb-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

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

just_cdb-0.4.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

just_cdb-0.4.1-cp312-abi3-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

just_cdb-0.4.1-cp312-abi3-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: just_cdb-0.4.1.tar.gz
  • Upload date:
  • Size: 167.9 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.1.tar.gz
Algorithm Hash digest
SHA256 ff7a699eb8c7c93b8507553c95775fa41ebf8995261010b99ac72cf9ee48edb1
MD5 600c7229aa4b596d38fc19969e3cd40e
BLAKE2b-256 2df3049b92d0a8abd5cb4d17085a4bdf90b7c7deb1d6414f4a2cbdb322e975a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1.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.1-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: just_cdb-0.4.1-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.1 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.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2b36e4686ca32dc1751eb087713577860ee6c13c6e4f59527068ad7cad1447c2
MD5 adb6a6cf69510a53ca70f48f7d1e6617
BLAKE2b-256 accd49a9bad16b2f0a38021b7f828c4ed75a230cf458a06ba571c2f9f99f924c

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 bee849a8d6fa0f601b1450f33e01d707142301db9e397562e19115881b833abb
MD5 f192abc7f5b1726a3910643d6a01942a
BLAKE2b-256 4acf57e356b31962f49855357861947de5dc03e3db464efe3fb8d7bb0f406292

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-pyemscripten_2025_0_wasm32.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-pyemscripten_2025_0_wasm32.whl
Algorithm Hash digest
SHA256 324224b00d2dd8fb098690469177947d612e1fa4492a10095103b53f6b1a1d45
MD5 fffc6bf882b4116a663ece4d97a1b4bb
BLAKE2b-256 b288e12c7082c7d5942ebd6b79b2cf7427c564c2e5ab49ad2812aa18fdc6b785

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d42bff9b2897aa79bc1c23e0de816fb0a00cd725c509d98d62a96a04b91168fd
MD5 78b76cb8ee4611dbae6ea71de9ff946c
BLAKE2b-256 2c54f557cede1142b2980bb4babe70f5bc57ba0674a060905e026513e166d5ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4913a4144b33ff8a59639f6ac7b77d85fa116a88310693f5760b5a5f41900002
MD5 d223eedd14a2961816c08c4896691d90
BLAKE2b-256 f7c6556652e1f54be8bff33696c1f4ce727ae90e76905b382c818fe8090a5f55

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f149a9489f226626778fbab3be8c27dd66e16d0c572401d229fdeade1b2bf6c
MD5 00fdd899ad19e4c7df04408bae1acfc2
BLAKE2b-256 1a9c949cb413a31ca3d8e955ebc26ab11a910d00084c63fae8f6111866ed580e

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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.1-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for just_cdb-0.4.1-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 10d29932c7b27f9cb9227ab299e9227aacfdc8b68f8bf7885b9bc39e713bc740
MD5 35917e152527b0558ec6e8002d04a33f
BLAKE2b-256 0b5a77f2c4cbb66a255d72854accdb89a1e1401dd7cf4cd2e9fbc63deda43b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for just_cdb-0.4.1-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