poka.sh

Docs

TBD

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

Apple Text-Based Dylib Stub.

At a glance

Original creator Apple
Purpose A text-based dylib stub: the exported symbols of a dynamic library, in YAML, shipped in SDKs instead of the library itself.
Extensions .tbd
Poka parser poka-tbd
Viewer poka-tree-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B2 Broad (see Breadth tiers)

How much Poka reads

B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.

Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: read parsers/poka-tbd/src/lib.rs in full, unit tests and tests/samples.rs, corpus of 14 .tbd files covering v1, v2, v3 and v4 (the corpus test the_corpus_covers_every_schema_version) including the 42-document libSystem.B umbrella. Covers the four YAML schema versions.

What Poka does not read

  • TBD v5 (JSON schema) is not read; a v5 file is refused with a message naming the schema
  • Only the first 40 symbols of each kind are listed per group (totals are shown)
  • YAML anchors, aliases and block scalars (not seen in real files)
  • Unrecognised or newer keys are ignored silently

Background

The linker needs only a library's public surface, so an SDK ships these YAML stubs, written by Apple's tapi tool, instead of the binaries. There are four schema versions that are not compatible with each other, and the document tag does not tell them apart: a bare --- !tapi-tbd means version 1 or 2 in old files and version 4 in newer ones, decided by a tbd-version field further down. Poka decides the version by content and shows the install name, targets, versions and the exported symbols, classes and other entries per target. A version 4 file lists its re-exported libraries in a nested mapping of targets and library paths; those are shown with the targets each group covers. Version 5 is the JSON-like schema and is refused with a message naming it.

Versions

Version Identifier Poka Note
TAPI v1, v2 and v3 Read
TAPI v4 --- !tapi-tbd with tbd-version: 4 Partly read Re-exported libraries are read from the targets-and-libraries mapping and shown with their targets; libSystem.B.tbd's 35 paths are listed.
TAPI v5 (JSON) Not read Not read: the JSON-like schema is refused with a message naming version 5 rather than a missing install-name.

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • TAPI (LLVM/Clang-based, PureDarwin fork) (candidate; licence unconfirmed; C++; https://github.com/PureDarwin/tapi) — Reads .tbd using LLVM YAML parser; repo is an archived fork of ributzka/tapi and licence text was not visible; language inferred from Clang project

Sources

  • parsers/poka-tbd/src/lib.rs