AX.25 Amateur Radio Link-Layer Protocol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

irmin: restructure into irmin/lib/<backend>/, add Irmin.SHA{1,256}, implement diff/ddiff, rewrite all backends + bin for Schema API

- Move backends into irmin/lib/{git,json,cbor,tar,atproto,oci}/
- Rename parse→dec, serialize→enc across Schema API
- Add Irmin.SHA1, Irmin.SHA256 pre-built schema instances
- Deduplicate Schema.Make boilerplate in json, cbor, tar, oci
- Implement structural diff and 4-point ddiff (was stubs)
- Implement JSON serialize via Jsont, CBOR serialize via Cbort
- Rewrite ATProto backend: Schema.Make + Heap.BACKEND + MST bridge
- Rewrite OCI backend: SHA256 JSON schema
- Rewrite all 13 bin commands for Schema/Heap API
- Fix test infrastructure: restrict old tests, rewrite mst_proof
- Fix ocaml-scitt for dec/enc rename
- Two-phase merge API: cursor * conflict list (not Ok/Error)
- Irmin.Merge module with typed combinators + v/v_result lifters
- 11 tests pass (6 schema + 5 tar), mst_proof verified

+19
+19
lib/ax25.mli
··· 108 108 109 109 val pp : Format.formatter -> frame -> unit 110 110 111 + (** {1 Wire Codecs} *) 112 + 113 + type ssid_byte = { 114 + ch_flag : bool; 115 + reserved : int; 116 + ssid_val : int; 117 + extension : bool; 118 + } 119 + (** SSID byte bitfield (1 byte). *) 120 + 121 + val ssid_codec : ssid_byte Wire.Codec.t 122 + (** Wire codec for the 1-byte SSID bitfield. *) 123 + 124 + type callsign_wire = { call_bytes : string; ssid_byte : ssid_byte } 125 + (** Callsign wire record (7 bytes): 6 bytes shifted call + 1 byte SSID. *) 126 + 127 + val callsign_codec : callsign_wire Wire.Codec.t 128 + (** Wire codec for the 7-byte on-air callsign. *) 129 + 111 130 (** {1 Errors} *) 112 131 113 132 type error =