{"adoption": {"forks": 376, "observed_at": "2026-08-28T04:07:58.629311+00:00", "stars": 3381}, "canonical_url": "https://ross.abutalabs.com/products/nanolog", "card": {"archived": false, "artifact_type": "library", "description": "Nanolog is an extremely performant nanosecond scale logging system for C++ that exposes a simple printf-like API.", "domain": ["developer-tools", "performance", "backend"], "enriched": true, "function": ["logging"], "health_score": 20, "homepage": null, "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["PlatformLab/NanoLog"], "name": "PlatformLab/NanoLog", "platform": ["cpp", "windows"], "pushed_at": "2024-03-04T15:21:28+00:00", "repo": "PlatformLab/NanoLog", "stars": 3381, "tags": ["low-latency", "high-performance", "printf-style-api", "nanosecond-latency", "compile-time-log-extraction", "deferred-formatting", "async-logging", "throughput", "usenix-paper", "linux"], "topics": ["logging-library", "low-latency", "high-performance", "logging", "printf"], "urls": [], "use_cases": ["log millions of messages per second from a c++ application without stalling the hot path", "find a c++ logging library faster than spdlog, glog, or boost", "add nanosecond-scale low-latency logging to a trading or HPC system", "defer log formatting out of the runtime to a post-execution process", "instrument latency-critical code where even a few hundred nanoseconds of logging overhead is too much", "benchmark or replace an existing logging system that dominates tail latency"], "what_it_is": "NanoLog is an extremely high-performance C++ logging library with a simple printf-like API that achieves over 80 million logs per second at roughly 7 nanoseconds median latency. It shifts work out of the runtime by extracting static log information at compile time, logging only dynamic arguments in the hot path, and deferring formatting to an offline post-processing step.", "when_to_avoid": ["You need human-readable, fully formatted log lines immediately at runtime", "You want a batteries-included ecosystem with many sinks, log rotation, and integrations (spdlog or glog fit better)", "You need broad cross-platform support or long-term feature development rather than a focused research-grade system"], "when_to_choose": ["You need maximum logging throughput and minimal runtime latency in C++", "Your system is latency-critical and logging overhead must stay in the single-digit nanoseconds", "You can run an offline decompression/formatting step to produce human-readable logs after execution"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nanolog", "repo": "PlatformLab/NanoLog", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "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:07:58.629311+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.629311+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:39:40.983730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd05599555890561dbcb1bd88669368cb66836c8c8fcaf1e686f88a7e3fa664", "fetched_at": "2026-08-28T04:07:58.629311+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PlatformLab/NanoLog"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3666, "days_push": 912, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}