A high-performance, completely self-contained CDB reader for SOFiSTiK® databases with a built-in SQL query engine.
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.
Release files for just-cdb 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| just_cdb-0.5.0.tar.gz | 198.5 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| just_cdb-0.5.0-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| just_cdb-0.5.0-cp312-abi3-pyemscripten_2026_0_wasm32.whl | CPython 3.12 | abi3 | PyEmscripten 2026.0+ WebAssembly | Details |
| just_cdb-0.5.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl | CPython 3.12 | abi3 | PyEmscripten 2025.0+ WebAssembly | Details |
| just_cdb-0.5.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| just_cdb-0.5.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| just_cdb-0.5.0-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
| just_cdb-0.5.0-cp312-abi3-macosx_10_12_x86_64.whl | CPython 3.12 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 17.7 MB
Release files / just_cdb-0.5.0.tar.gz
| Download URL | just_cdb-0.5.0.tar.gz |
|---|---|
| Size | 198.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c4434635bf5145215d14a6d54895a0a0e2bc0d67543fc0458bf76c7e59e8ffc
|
|
BLAKE2b-256 checksum How to use checksums |
ea1e8d7d22051b5038e52147335d8131157051b73800c94f76d5e98c70a9473e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-win_amd64.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a3922801ca595e2acf4b26521f98e619aaea3cd0c42c05fcbd070578c0ecb8c8
|
|
BLAKE2b-256 checksum How to use checksums |
ae0f501f12ec7e75c8dc792d72887817e6147b0c8988712b820aa9f3fea39b02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-pyemscripten_2026_0_wasm32.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 PyEmscripten 2026.0+ WebAssembly abi3 |
|
SHA-256 checksum How to use checksums |
f75854c958748281614a0789e00395f61f0c7e16bdd09cdd1053788d3b86b44d
|
|
BLAKE2b-256 checksum How to use checksums |
e6f7bf53d08c19f7b57301f26d2fd926ad9dbe75fe075bcbcdb4e0347b0a55fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 PyEmscripten 2025.0+ WebAssembly abi3 |
|
SHA-256 checksum How to use checksums |
7b896967336aebd9811d46a76b622c7bb3737d821189d2602ee97ed1acfecadf
|
|
BLAKE2b-256 checksum How to use checksums |
4665b35153f0a16d8b0edbbeaa1c8f6d7c3ffc1b940a14623cc040937551bef8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0ebca9300bf15ccd043252f187fdaac5707554f4d8387f142037a8967279975a
|
|
BLAKE2b-256 checksum How to use checksums |
aa493537d12571a85cea85c94257e2cd111575d9182ff8f71fa2d160661bc5c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
04afeba0f10a5f32534f8344f40a3a263a183f8a62c9735eb28238fb3c2ad6c9
|
|
BLAKE2b-256 checksum How to use checksums |
5b404f4c34d5dea3e19869468d49f5c4d714657ed32f33ac39bea0796da11899
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ec8297d1100a64f5fb734a90ba372bc9c814400176226b39d606dbef1fcb231
|
|
BLAKE2b-256 checksum How to use checksums |
dd59fc1e6266556f3855884b21c53942ee8f89dc695ea7903fdac130e782e4e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / just_cdb-0.5.0-cp312-abi3-macosx_10_12_x86_64.whl
| Download URL | just_cdb-0.5.0-cp312-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.12 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
644a38a7687b7049e5dc7d6485be8d67db0b30269f34ebcdb10ed134a210d729
|
|
BLAKE2b-256 checksum How to use checksums |
f6ea2998d9ee1348d70d92fa845c247c3a79ea081bee56c754dd28bf5c0fde0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency log