C++20 · native extraction boundary

GetBibleSWORD

A native C++20 extraction engine for CrossWire SWORD modules with a CLI, stable C ABI, deterministic NDJSON output, and cross-architecture releases.

Engineering preview
Role
Architect and systems developer.
Evidence
2 direct public links
  • C++20
  • C
  • CMake
  • CrossWire SWORD
  • NDJSON
  • Linux

Purpose and value

Why this system exists

The engine isolates native library concerns behind explicit machine interfaces, allowing build pipelines and other consumers to use SWORD data without inheriting its implementation complexity.

Engineering role

Architect and systems developer.

System structure

Architecture

  1. 01

    A native core reads SWORD modules and emits a versioned NDJSON protocol.

  2. 02

    The command-line interface supports batch and pipeline operation.

  3. 03

    A stable C ABI exposes library functionality to other runtimes without a C++ ABI dependency.

  4. 04

    Release workflows target x86_64 and arm64.

Boundaries

Principal interfaces

CLI for extraction and inspection
Versioned NDJSON v1 stream
Stable C ABI through libgetbiblesword.so.1
Cross-architecture release artifacts

Judgement

Engineering decisions

Use C++ for direct SWORD integration and a C ABI for broad language interoperability.

Keep output deterministic and line-oriented for validation, streaming, and failure isolation.

Treat the protocol as a contract rather than an incidental serialization detail.

Confidence model

Delivery, validation, and maintenance

  • Conformance validation
  • Deterministic serialization
  • Explicit ABI versioning
  • Automated x86_64 and arm64 builds

Direct sources

Inspect the evidence

Capabilities evidenced here

Rapid navigation

Go to

navigate Enter open