auki-registry
Synced from the repository
This page mirrors crates/auki-registry/README.md in the auki-sdk repo (branch develop).
The repository is the source of truth.
Sensor / Clock / Frame / Detector identity catalogs and their on-disk IO. Content-addressed: the XXH3-128 hash of the RFC 8785 canonical JSON is the entry's version, and refining an entry is a sibling-write under the same id.
The crate's scope is identity catalogs only — log payload types live in auki-datatypes. Spatial sensor bodies pin exact frame references to the Frame Registry via the shared RegistryRef type.
Status: Shipped.
Public surface
SensorRegistryEntry(peer_id,sensor_id, body) +SensorBody(Camera/Rangefinder/Rf/Audio/JointEncoders). Every body has an open-stringtypefield (e.g."rgb","point_cloud","pcm") and carries aframe: RegistryRefreference.PointCloudwas renamed toRangefinder;point_cloudis now asensor.typevalue under that variant.ClockRegistryEntry(peer_id,clock_id, body)FrameRegistryEntry(peer_id,frame_id, convention fields) + preset constructorsFrameRegistryEntry::ros_body(peer_id, frame_id),ros_optical(...),opengl(...),unity(...)— all takepeer_idas the first parameter.DetectorRegistryEntry(peer_id,detector_id, body,output_types)RegistryRef { peer_id, id, hash }— shared reference type replacing per-field(sensor_id, sensor_hash)pairs in manifests and sensor bodies.LogRef { source_peer_id, resource_id }— reference type for identifying logs by identity tuple (not a single content hash).write_sensor(app_root, entry)/read_sensor(app_root, peer_id, sensor_id, hash)(and_clock/_frame/_detectorvariants). Disk paths include thepeer_idsegment:registries/<kind>/<peer_id>/<id>/<hash>.json.validate_registry_id(id)— rejects>,@, and whitespace. Used bySession::register_*inauki-session.- Locked vector pins the canonical-JSON + XXH3-128 chain for the M1 example sensor and clock entries.
Depends on
auki-jcs— for canonicalizing entries before hashing.auki-hash— for the content hash.auki-layout— for the on-disk path of each entry.