v0.69
ITU-R M.1371-6 alignment
The JSON output has been aligned with the 2026 ITU-R M.1371-6 spec.
- Message type 28 (single-slot AtoN report, M.1371-6 §A7-3.26) is now expanded into structured JSON fields. See the type 28 reference.
- Messages 25 and 26: the addressed/broadcast envelope is now exposed in JSON; when the payload carries a recognised
(dac, fid)pair the same ASM fields are emitted as for messages 6 and 8. - Spec field renames in messages 1/2/3, 4/11, 9, 18, 19, 21: bits previously labelled
regional/reservedare now exposed under their M.1371-6 names (power,transmission_control,alt_sensor,aton_status, …). See the JSON reference for the per-message field list. - Type 23:
ship_typeis renamed toshiptypeand now includes ashiptype_textdescription, matching the convention used elsewhere. - New ASM decoder for DAC 366, FID 10 (IALA AtoN monitor; messages 6/8/26).
New ASM decoders
A range of widely deployed Application-Specific Messages is now expanded into structured JSON fields:
- IMO Circ.289 (DAC 1) — FID 17 (VTS-generated targets), FID 19 (marine traffic signal), FID 20 (berthing data / port operations), FID 22 (area notice, broadcast), FID 23 (area notice, addressed), FID 24 (extended ship static), FID 25 (dangerous cargo / IMDG), FID 28 (route addressed), FID 32 (tidal window).
- Inland AIS — CCNR VTT 1.2 (DAC 200) — FID 21 (ETA at lock/bridge/terminal), FID 22 (RTA at lock/bridge/terminal), FID 23 (EMMA safety warning), FID 24 (water level gauges, up to four stations), FID 40 (signal station status).
- Sweden STM (DAC 265, FID 1) — Sea Traffic Management route messages, with full waypoint reconstruction from the delta-encoded leg chain.
- Flag-state text telegrams — DAC 210 (Cyprus), 248 (Malta), 353 (Liberia) FID 0 now decode as text.
Inland AIS in the web viewer
- Inland ENI (European vessel ID number) is now part of ship static data, shown in the ship card and available as an optional sortable column in the ship table.
- Inland-specific FIDs (10/55) and the blue sign indicator are surfaced on the map and ship card.
- Ship-type details are now reachable from a click popover with the full ITU description, and ERI / inland ship-type tables are complete and labelled correctly.
Web viewer
- Box select on the map — drag a rectangle to show tracks for every vessel inside the area at once.
- Reset tracks from now map action — clear historical track points and start fresh from the current time without dropping the vessels themselves.
- GPS-derived station position is marked with a blue border and a tooltip so it is visually distinguishable from configured fixed positions.
- Type 24B transponder details (vendor, model, serial) are now surfaced in the ship card's tech details.
- Text telegrams (safety / broadcast text messages) are now displayed in the web viewer.
Community feed
- The community ship overlay has been replaced by a popup pane connected to aiscatcher.org/livemap with two-way view synchronisation (map pan/zoom is shared) and local-vessel push.
- The community-feed icon now indicates sharing state at a glance: red = off, orange = anonymous, green = sharing with UUID.
HTTP API
- Per-route CORS allow-origin flag, enabled by default on the
JSON,GeoJSON,KML, andmetricsendpoints so dashboards and external consumers can fetch directly from a browser. CSP also now allowshttp/wsschemes so LAN deployments work without a custom policy.
Input
- Lossless mode for file and TCP inputs.
-ga LOSSLESS on/off(FileRAW) and-gt LOSSLESS on/off(RTLTCP) control whether the input blocks or drops samples on overflow. Defaults preserve current behaviour: file replay is lossless (block), live TCP is lossy (drop). The current setting is shown in-voutput. - Simpler inline settings for input flags.
-t,-r,-x,-z,-i,-w, and-enow accept trailing key/value pairs after their positional arguments, so you can write-t HOST PORT lossless oninstead of having to repeat the device subletter via-gt. - New
sensitivity_highconfig option for SDR input selects the higher-sensitivity ("challenger") decoder model — useful when you want maximum decode rate and CPU headroom allows it.
Build and packaging
- New CMake option
-DWEBVIEWER=OFFproduces a headless build withoutWebDB/WebViewer/HTTPServer(~1.5 MB smaller binary). The-Nflag and theserverconfig key are gated when the webviewer is disabled. aiscat— Python bindings for the AIS-catcher NMEA decoder are now published on PyPI. The package exposes aDecoderwithdecode()/from_file/from_stdin/from_tcp/from_udphelpers, multiple output formats (dictionary,annotated,json,json_nmea,nmea,nmea_tag,binary), and ships pre-built wheels including armv7l and Windows ARM64. Free-threaded (3.13t / 3.14t) wheels are also published, plus an additional decoder speedup. See Tools → Python for details.