{"adoption": {"forks": 313, "observed_at": "2026-08-28T04:04:57.625883+00:00", "stars": 1519}, "canonical_url": "https://ross.abutalabs.com/products/jserialcomm", "card": {"archived": false, "artifact_type": "library", "description": "Platform-independent serial port access for Java", "domain": ["developer-tools", "hardware", "cross-platform"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 66, "homepage": "http://fazecast.github.io/jSerialComm/", "language": "C", "license": "LGPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["Fazecast/jSerialComm"], "name": "Fazecast/jSerialComm", "platform": ["jvm", "windows", "cross-platform"], "pushed_at": "2025-11-07T13:47:25+00:00", "repo": "Fazecast/jSerialComm", "stars": 1519, "tags": ["serial-port", "rs232", "hardware-communication", "embedded-devices", "native-library", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["read data from an Arduino over a serial port in Java", "enumerate available COM ports on Windows from a Java application", "communicate with RS-232 devices cross-platform in Java", "replace RxTx or JavaComm for serial port access", "open multiple serial ports simultaneously with timeout support", "receive callbacks when serial data arrives or modem lines change"], "what_it_is": "jSerialComm is a platform-independent Java library for accessing serial ports without requiring external native tools or the deprecated Java Communications API. It bundles the correct native library per architecture and supports port enumeration, configuration, stream-based I/O, and event callbacks.", "when_to_avoid": ["your project is not on the JVM (use pyserial, serialport, etc. instead)", "you need higher-level protocols over serial rather than raw byte/streams access", "you require LGPL-3.0-incompatible licensing terms"], "when_to_choose": ["you need serial port access in a Java/JVM application across Windows, macOS, or Linux", "you want a lightweight, dependency-free alternative to RxTx or the Java Communications API", "you need event-based serial reading, configurable timeouts, or flow control", "you want automatic native library loading per architecture via Maven/Gradle"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jserialcomm", "repo": "Fazecast/jSerialComm", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "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:04:57.625883+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.625883+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:31:56.462763+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e893be010cfa4cb5a830674a4a591a9694e29ecdb6b47a5ad54df5212a80c9d8", "fetched_at": "2026-08-28T04:04:57.625883+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fazecast/jSerialComm"}, {"content_hash": "0865a3bd2a009ad53c1ab5470dd267652f4424bd5fd6bda09cb4dfe72aa47cf2", "fetched_at": "2026-08-29T11:35:05.586154+00:00", "kind": "homepage", "missing": false, "url": "http://fazecast.github.io/jSerialComm/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 51, "longevity": 100, "rhythm": 43}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4205, "days_push": 299, "days_rel": 302, "gap_med": 62.5, "n_releases_24m": 3}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}