{"adoption": {"forks": 483, "observed_at": "2026-08-28T04:03:32.595070+00:00", "stars": 1088}, "canonical_url": "https://ross.abutalabs.com/products/freemodbus", "card": {"archived": false, "artifact_type": "library", "description": "BSD licensed MODBUS RTU/ASCII and TCP slave", "domain": ["embedded-systems"], "enriched": true, "function": ["embedded", "networking", "serialization"], "health_score": 86, "homepage": null, "language": "C", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["cwalter-at/freemodbus"], "name": "cwalter-at/freemodbus", "platform": ["embedded", "c", "cross-platform"], "pushed_at": "2026-06-24T08:31:53+00:00", "repo": "cwalter-at/freemodbus", "stars": 1088, "tags": ["modbus", "modbus-tcp", "modbus-rtu", "modbus-ascii", "slave", "industrial-automation", "protocol-stack", "bsd-license", "automation", "industrial", "protocols"], "topics": [], "urls": [], "use_cases": ["implement a Modbus slave on an embedded microcontroller", "expose sensor data over Modbus RTU or ASCII serial lines", "serve Modbus TCP requests from an embedded device", "integrate an embedded device with SCADA or PLC systems", "port a Modbus protocol stack to a custom hardware platform"], "what_it_is": "FreeModbus is a BSD-licensed Modbus ASCII/RTU and Modbus TCP slave (server) implementation for embedded systems, implementing the Modbus Application Protocol v1.1a. It is written in C with portable core protocol code and hardware-specific port layers for various microcontroller demos.", "when_to_avoid": ["you need a Modbus master/client implementation rather than a slave", "you need an actively maintained project with official vendor support", "you want a high-level library for desktop or server-side Modbus communication"], "when_to_choose": ["you need a lightweight, BSD-licensed Modbus slave stack for an embedded C project", "you need both serial (RTU/ASCII) and TCP Modbus support", "you want a mature, widely used protocol implementation you can port to your own hardware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/freemodbus", "repo": "cwalter-at/freemodbus", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.595070+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:21.402896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7c904cf12ef693748908acb732eafb94aa441ad07c92a30d20100771e48808a", "fetched_at": "2026-08-28T04:03:32.595070+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cwalter-at/freemodbus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2888, "days_push": 70, "days_rel": 460, "gap_med": null, "n_releases_24m": 1}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}