// the take
A pure-Java library for talking to industrial PLCs over Siemens S7, Modbus (TCP/RTU/ASCII), and Mitsubishi MELSEC, plus a separate RTSP/RTP/H264-to-fMP4 pipeline for streaming IP camera feeds into a browser via MSE. It's aimed at people building SCADA/HMI or factory-monitoring tools in Java who don't want to shell out to a C library or run a gateway process.
Implements S7, Modbus, and MC protocols from the wire up with no runtime dependencies beyond lombok and slf4j, so it drops into an existing JVM stack without dragging in anything heavy. Bundling industrial protocol support with an RTSP-to-MSE video pipeline in one library is a genuinely unusual and useful combination for plant-floor monitoring dashboards that need both PLC data and camera feeds. Each protocol has its own tutorial doc (English and Chinese) and a separate demo repo, which is more documentation than most single-maintainer protocol libraries bother with. The byte-buffer helpers (ByteReadBuff/ByteWriteBuff) do the tedious endianness and bit-packing work so callers aren't hand-rolling that per protocol.
One maintainer, and the README itself admits MELSEC support is only verified against the L series and FX5U — the other listed series (iQ-R, Q/L, QnA, A) are implemented but untested, which matters for industrial gear where a wrong read/write can be expensive. None of the protocols here (S7, Modbus, MC) have authentication or encryption of their own, and the library adds none — fine on an isolated OT network, a real exposure if anyone puts this on anything routable. The H264 NALU parsing (FU-A/FU-B, STAP-A/B) and MP4 box writer are hand-rolled binary parsers; that's a lot of custom parsing surface to trust for production video without a wide range of real camera hardware to test against. There's no guard rail around PLC writes (e.g., validating memory-area/address bounds before sending), so a bug in calling code can silently write to the wrong PLC memory with no safety net from the library.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →