MOC — General Utility Libraries

Cross-cutting libraries used throughout the codebase: one per language. These sit beneath
every other subsystem MOC (container-jdisc, content-nodes, config-admin).
(Description from vespa/Code-map.md; sizes from first-hand inspection.)

Modules

  • vespa/vespalib — general utility library for C++ (1174 files, ~123k LOC). Observed
    subdirs include data/, net/, searchlib/, geometry/, parse/, objects/,
    testkit/ — a wide-scope “std-plus” layer.
  • vespajlib — general utility library for Java, including the Java tensor library
    implementation (577 files, ~68k LOC).

Note: the Java tensor implementation lives here (vespajlib) while the C++ tensor/eval
library is its own module under content-nodes (vespa/eval).

Anchor files

  • vespa/vespalib/data/ — core data structures (observed directory; incl. abi-spec.json,
    suggesting a stable ABI surface).
  • vespa/vespalib/src/vespa/vespalib/ — main C++ source tree.
  • vespa/vespajlib/src/main/java/com/yahoo/tensor/ — Java tensor library (path pattern
    observed; exact subpackage to verify).

Open questions

  • Verify the vespajlib tensor package path and pick the canonical “first file to read”.
  • Should other low-level modules (fnet, flags, jrt, http-utils, fsa) be folded in?
  • What is the ABI-compatibility policy signaled by vespa/vespalib/data/abi-spec.json?