2026-10-18

Weekly open source: LawCodex reaches 198 jurisdictions, and a pure-Rust openEMS

Three things stood out this week. LawCodex, launched the Sunday before with 61 repositories, more than tripled: by Thursday its coverage table listed 198 jurisdictions. The Ledger Nano X research went from mapping one board to tracking reported cases and designing a tool to spot them. And on Sunday three new crates appeared together: ems, an FDTD electromagnetic solver meant to replace openEMS; csx, its CSXCAD-compatible geometry layer; and hdf5rs, a pure-Rust HDF5 for the solver's output. Underneath, purecrypto reached 0.10.

LawCodex: 198 jurisdictions

LawCodex publishes legislation as plain Markdown in git, one repository per jurisdiction. It took about 550 commits this week, more than any other project. On Monday, 20 more repositories were created, and on Tuesday 118. Status commits on the new organisation profile went through the world by region: Central Asia and Mongolia, the Gulf states, North and West Africa, Southeast Asia, the Caribbean, Latin America, the Pacific. The coverage table generated on Thursday counts 74 full, 81 partial and 43 minimal. In LawCodex's terms, "minimal" usually means the source's terms forbid bulk download, or the site blocks access. Every row names its source and what is missing. Some entries say plainly that a country's constitution is all that could be taken, or that nothing could be. The profile repository also sets out the shared conventions: file format, front matter, and the order in which sources are preferred, from official open-data APIs down to Internet Archive copies, which are always marked as such.

The two largest repositories were finished:

  • be (119 commits): 17,320 texts in force in French and 17,319 in Dutch, from Justel. That covers the Constitution, 86 code files, 6,653 laws, cooperation agreements, and the decrees and ordinances of every region and community. A final regeneration from the cache fixed the Dutch code directory names and detection of repeals.
  • ua (60 commits): 6,843 files, namely the Constitution, 23 codes and 6,819 laws, each file recording the date it was retrieved, with a README section on known gaps.

The Ledger work: a board, a tracker and a detector

ledger_nano_x_pads (54 commits) went from tracing nets to identifying parts. PWR1 is an ST L6924D charger, PWR2 an ST STC3115 fuel gauge, and PWR3 a TI BQ29729 battery protection IC. X10 is the OLED's TLV61046A boost converter, and Y1 the 32 MHz crystal, read from its marking. Tracks are now drawn at their measured widths, the board-to-board connector is modelled on the real Hirose part, and the 3D viewer works on phones. A third implant specimen, C, described as "the hand-wired generation 1 implant" with a small eSIM board, joins A and B. The code is now MIT-licensed and the content CC BY 4.0.

Two new repositories go wider. ledger_implant_osint (36 commits) is a public site that "tracks publicly reported Ledger devices that were found with hardware implants." Each report records where the device was bought, the model, the implant generation if known, and links to the original posts. The photos are archived in the repository, and each case is marked confirmed, suspected, counterfeit, clean, unverified or pending. New cases can be filed through an issue template. The week's entries include Joe Grand's teardown of the original Nano X implant, counterfeit devices kept apart from implants, and one reported purchase marked clean.

ledger_implant_detector (9 commits) is a hardware concept, and its README says plainly that it is not yet built or validated. It is a hand-held board meant to spot the extra copper an LTE-modem implant needs for its antenna. It compares eight capacitive electrodes, read by two FDC2214 converters, against a known-genuine unit of the same model, and has a near-field RF loop for a NanoVNA. The commits add the schematic, a routed 4-layer PCB, electrostatic and FDTD simulations of the antenna against the device's battery, and a first NanoVNA session on a real implanted Nano X. That session found a clear response at 820–850 MHz, but only with the probe right over the antenna's feed. The README also records the limits found in simulation: copper that lies entirely within the battery's outline is not detectable capacitively.

ems, csx, hdf5rs: openEMS in pure Rust

ems (new, 73 commits) is "a pure Rust FDTD (finite-difference time-domain) electromagnetic field solver, intended as a replacement for openEMS." It is clean-room (no openEMS or CSXCAD code was consulted) and checked against a black-box openEMS. The goal is to run existing openEMS XML models unchanged. Its ems binary takes the openEMS executable's own options, so scripts that call openEMS can call it instead. The week took it through four milestones. It has a threaded engine with an exact energy invariant, Mur and CPML boundaries, lumped, microstrip and waveguide ports, and dispersive media (Drude/Lorentz/Debye). Then came NF2FF radiation patterns, SAR, plane waves and periodic Bloch boundaries, conformal PEC, a thin-wire model, and a cylindrical-coordinate engine with its own PML.

It stands on two companion crates from the same day. csx (54 commits, v0.0.2) is the CSXCAD-compatible model: geometric primitives, materials, probes and excitations, parametric expressions, mesh generation, and CSXCAD/openEMS XML read and write. It has zero runtime dependencies, and its geometry semantics were "verified black-box" against CSXCAD. hdf5rs (35 commits, v0.0.1) reads and writes HDF5. Reading covers every layout and chunk index, the common filters and virtual datasets. Writing covers chunked, filtered and resizable datasets, and opening an existing file to modify it. Files are checked against h5py in CI, and deflate and LZF go through compcol.

This connects to cadlab (33 commits). The headless PCB tool can now export a board region to openEMS as CSXCAD geometry with a graded mesh, the format ems is built to run. It also gained a 2D boundary-element impedance solver, frequency-dependent losses and a built-in 3D FDTD sim.sparams. 3D models now come in through oxideav-step and oxideav-vrml.

purecrypto 0.10: speed, then a hardening pass

purecrypto released v0.10.0 and v0.10.1 (139 commits). About half of them were perf:. AArch64 got a fused AES-CTR + GHASH kernel, NEON ChaCha20 and BLAKE3, and two-stream SHA-2 and Keccak kernels. ARIA, Camellia, SM4 and SEED got bitsliced S-boxes. Ed25519 verification now uses Straus with a static wNAF table, the Ed25519 fixed-base table halved from 115 KB to 60 KB, and BLS12-381 gained GLV/GLS splits and fused Miller-loop steps. The rest was hardening. TLS 1.3 key_share and HRR handling was tightened, QUIC key-update ordering is enforced per RFC 9001, X.509 parsing is stricter, decrypted key buffers are wiped, PSKs and passwords are kept off the command line, and there are new fuzz targets for JOSE, SCT lists and chain verification. Valgrind's constant-time harness was run again after the performance work, and its findings were fixed before the release.

Also this week

  • reticle (88 commits, v0.0.7) — a T-state-accurate Z80 covering every documented encoding, an MJPEG encoder whose DCT uses no multiplier, IMA ADPCM checked against ffmpeg, a timing-driven router, and NewAE's ChipWhisperer-Husky gateware built on the XC7A35T "as far as it builds."
  • puressh — v0.1.9 through v0.2.0: tunnel-device forwarding (ssh -w), agent-held certificates and destination constraints, ML-DSA-44+Ed25519 keys, OpenSSH's escape commands, and server/agent no longer default features, so client-only builds pull in no nix.
  • puregit — v0.0.2, with interop harnesses against the real git CLI (on-disk format, wire protocol, CLI output) and against libgit2 on Linux, macOS and Windows.
  • rsurl — v0.1.17 to v0.1.19, an allocation-trimming pass across HTTP/1.1, HTTP/2, HTTP/3 and the smaller protocol clients, on purecrypto 0.10.1.
  • oxideav-image — the oxideav image gateway, v0.0.3–v0.0.4: metadata blobs carried through, allow/deny lists for containers and codecs, and a "will this save?" check that does not touch pixels.

Next week

LawCodex moves from coverage to depth, filling the partial and minimal entries where a usable source can be found. The implant detector stays a concept until boards are built and measured. ems continues its openEMS parity work against the black-box oracle, with csx and hdf5rs following its needs.