SpaceWire (ECSS-E-ST-50-12C) and RMAP (ECSS-E-ST-50-52C)
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

+16
+16
lib/spacewire.mli
··· 134 134 val rmap_crc_bytes : bytes -> int -> int -> int 135 135 (** [rmap_crc_bytes buf off len] computes the RMAP CRC-8 over a sub-range. *) 136 136 137 + (** {1 Wire Codecs} *) 138 + 139 + type rmap_instruction = { 140 + instr_reserved : int; 141 + instr_is_command : bool; 142 + instr_is_write : bool; 143 + instr_is_verify : bool; 144 + instr_is_ack : bool; 145 + instr_is_increment : bool; 146 + instr_reply_addr_len : int; 147 + } 148 + (** RMAP instruction byte bitfield (1 byte). *) 149 + 150 + val rmap_instruction_codec : rmap_instruction Wire.Codec.t 151 + (** Wire codec for the 1-byte RMAP instruction field. *) 152 + 137 153 (** {1 RMAP Types} *) 138 154 139 155 (** RMAP command codes (ECSS-E-ST-50-52C Table 5-1). *)