{"adoption": {"forks": 318, "observed_at": "2026-08-28T04:03:31.434762+00:00", "stars": 1084}, "canonical_url": "https://ross.abutalabs.com/products/nmodbus", "card": {"archived": false, "artifact_type": "library", "description": "NModbus is a C# implementation of the Modbus protocol.", "domain": ["iot", "embedded-systems", "hardware"], "enriched": true, "function": ["networking", "sdk", "developer-tools"], "health_score": 74, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["NModbus/NModbus"], "name": "NModbus/NModbus", "platform": ["cross-platform", "dotnet"], "pushed_at": "2026-06-30T15:59:15+00:00", "repo": "NModbus/NModbus", "stars": 1084, "tags": ["modbus", "industrial-automation", "serial-communication", "rtu", "modbus-tcp", "scada", "automation"], "topics": [], "urls": [], "use_cases": ["communicate with PLCs and Modbus slave devices from C#", "read registers from a Modbus TCP device", "implement a Modbus RTU master over serial port", "simulate multiple Modbus slave devices on one transport", "poll industrial sensors over Modbus UDP", "add custom Modbus function code handlers to a slave device"], "what_it_is": "NModbus is a C# (.NET) library implementing the Modbus protocol, supporting serial ASCII, serial RTU, TCP, and UDP transports. It enables communication with Modbus slave devices and hosting multiple slave devices on the same transport.", "when_to_avoid": ["you need Modbus support outside the .NET ecosystem", "you need active ongoing development with frequent updates", "you need higher-level industrial protocol stacks like OPC UA"], "when_to_choose": ["you need a mature MIT-licensed Modbus implementation for .NET", "you need both master and slave support across TCP, UDP, and serial transports", "you need to host multiple slave devices on a single physical connection"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nmodbus", "repo": "NModbus/NModbus", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "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:31.434762+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.434762+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:59.562405+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "efa1a5b321aaa32e5cd98f1b664044a1ef232801a519011f7a36a6ee522462c6", "fetched_at": "2026-08-28T04:03:31.434762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NModbus/NModbus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3425, "days_push": 64, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}