flowrs-transport Copyright 2024-2026 David Charlot and the flowRS contributors Licensed under either of the Apache License, Version 2.0 (LICENSE-APACHE) or the MIT license (LICENSE-MIT), at your option. This crate is part of flowRS. Third-party material: The tests in src/sila.rs quote the SiLAService feature definition and lines of its generated .proto from SiLA 2 sila_base: SiLA 2 sila_base, Copyright (c) 2018 SiLA2. MIT License. (LICENSES/SiLA2-sila_base-MIT.txt) Everything else in this crate was written for flowRS, from the specifications it implements (Espressif's serial protocol; USB DFU 1.1 and ST DfuSe (AN3156); Arm CMSIS-DAP; the RP2040/RP2350 PICOBOOT interface and the UF2 format; ST-Link; the Atmel STK500, STK500v2 and AVR109 protocols; IVI-6.1 HiSLIP; VXI-11 and ONC RPC (RFC 5531); USBTMC/USB488; VPP-4.3 resource strings; SCPI and IEEE 488.2; the LXI device specification; SiLA 2; DNS-SD and mDNS (RFC 1035, 2782, 3596, 6762, 6763); COBS (Cheshire and Baker, 1999); CRC-32C (RFC 3720); SHA-256 (FIPS 180-4); HMAC (RFC 2104)). Protocol constants were cross-checked against these projects, whose code is not in this crate: esptool-js (Apache-2.0); WebDFU (ISC); DAP.js (MIT); probe-rs (MIT OR Apache-2.0); the Raspberry Pi pico-sdk and picotool (BSD-3-Clause); microsoft/uf2 (MIT); python-vxi11 (MIT); Red Pitaya's SCPI server and scripts (BSD). Where a constant was also read in a GPL tool (esptool.py, avrdude), it is a fact of the protocol, published by its vendor as well; no code from those tools is in this crate. The AVR and DFU constants are checked against the vendors' documents (Atmel AVR061, AVR068 and AVR109; USB DFU 1.1; ST's DfuSe), as PROVENANCE.md records. The ESP8266 ROM's erase size (src/esptool/esp8266_rom.rs) was written clean-room: from Espressif's SDKs, and from esptool.py run only as a black-box oracle, never read (see PROVENANCE.md).