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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+PyEmscripten 2026.0 wasm32

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

Uploaded CPython 3.12+PyEmscripten 2025.0 wasm32

just_cdb-0.4.0-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.0-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.0-cp312-abi3-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

just_cdb-0.4.0-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.0.tar.gz.

File metadata

  • Download URL: just_cdb-0.4.0.tar.gz
  • Upload date:
  • Size: 167.2 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.0.tar.gz
Algorithm Hash digest
SHA256 fe27506891c1d4ad67178dc7dae624826d3fddcfaf577bd09240161b96a4c082
MD5 5e46697712695ad5fdbd2fde5c162b42
BLAKE2b-256 648efb02c3134c549d9fcdffde78b045da2e6fd601762e43dbbdacb1acb15fd3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: just_cdb-0.4.0-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.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2fa8380634000aa0de744b9fe90b0431a83719dc6e94a73da30a138c160f9081
MD5 3edd5a08f3321d9df2a79f5653875e94
BLAKE2b-256 91afa7445187569b8832c28eb376cfd795eff0a4fd1739d3980bcdcb52354344

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 92b5073321df4858863d1f2808f4cd3c73433269c58747cda1e1f09177bb0634
MD5 53b615c3d926475359d41e9d0e3dcec9
BLAKE2b-256 6e6e7a24e962b4692d14581ba4b46f6b561901962640772ff35cf8606bddbc07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl
Algorithm Hash digest
SHA256 31ace2af6cac32883542fa168ba32e1f7151e649d115e38d09176c12b074f736
MD5 5b6bb10baefc23429998a14a8faae206
BLAKE2b-256 0fd5dcdb48d34032bafebe6c3b933e4c639fd87c939fda8fbc8a3cc4239f1971

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e959233ce62bd296a81dfd74695cd28edc2fafe23196178bfa9b1b730f09f99d
MD5 94e5d1dad49b2ea9bf36794dcbb09028
BLAKE2b-256 7577fe3c23b4c05bcd058d87a67b753a80114a5ee0efc48be9e20109792f1f5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d04fc91a024e4fca1d6dd08a5099cdca97b293a2f60cdec2a3c38de3d08bab87
MD5 98994de09cb5f9d7f9c104da94d5a305
BLAKE2b-256 bf83469eb7db89032b96f979b063408309e1553f42b6cbeaa6103081163a23cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 add0673094e13e31a7224d08a6b6ccd5cec0a53723b077c777b5b547d711e9b8
MD5 4d444751bbd8a05572f29eedf6dad869
BLAKE2b-256 9f9d08a9f756bc822fff65e04030d14727b56ef1e56ecf74f7233dbf8c4e1fd4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for just_cdb-0.4.0-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a386509893af61acfc4936bb91bf0a4e083ea67509fc7f6cbb46a7ab5eaa9dd0
MD5 b75a84de97517361ad9bf71d18e8723c
BLAKE2b-256 d5794dacf9aab6b7effcf7c845774444fb957617c255d0a6f201eb6e03ec11bb

See more details on using hashes here.

Provenance

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