{"adoption": {"forks": 505, "observed_at": "2026-08-28T04:04:35.300806+00:00", "stars": 1388}, "canonical_url": "https://ross.abutalabs.com/products/pmdk", "card": {"archived": true, "artifact_type": "library", "description": "Persistent Memory Development Kit", "domain": ["developer-tools", "operating-systems", "databases", "performance"], "enriched": true, "function": ["file-system", "caching", "developer-tools"], "health_score": 10, "homepage": "https://pmem.io", "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "abandoned", "member_repos": ["pmem/pmdk"], "name": "pmem/pmdk", "platform": ["c", "cpp"], "pushed_at": "2025-11-12T09:34:20+00:00", "repo": "pmem/pmdk", "stars": 1388, "tags": ["persistent-memory", "pmem", "nvm", "non-volatile-memory", "libpmem", "byte-addressable-storage", "intel-optane", "nvdimm", "archived", "linux"], "topics": ["pmem", "pmdk"], "urls": [], "use_cases": ["program applications that use persistent memory directly", "manage non-volatile DIMM devices from Linux", "build crash-consistent data structures in persistent memory", "emulate persistent memory with DRAM for development and testing", "access persistent memory at low level with libpmem", "use transactional object stores on persistent memory"], "what_it_is": "The Persistent Memory Development Kit (PMDK) is a collection of C libraries and tools (libpmem, libpmem2, libpmemobj, and others) for managing and accessing byte-addressable, non-volatile persistent memory devices. This original pmem/pmdk repository has been archived and the project has moved to daos-stack/pmdk.", "when_to_avoid": ["you need active maintenance or new features - this repository is archived and no longer maintained here", "you are not working with persistent memory hardware or emulation", "you need a portable solution across Windows or macOS - PMDK primarily targets Linux"], "when_to_choose": ["you are developing C/C++ applications targeting persistent memory hardware or emulated PMem on Linux", "you need stable, production-quality libraries for byte-addressable non-volatile memory programming", "you are maintaining an existing PMDK-based application"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pmdk", "repo": "pmem/pmdk", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "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:35.300806+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.300806+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:47.127984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c66ea321bbfc0added51d42978455cb672b7f4e50b7d96f399fae6a37806d5a9", "fetched_at": "2026-08-28T04:04:35.300806+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pmem/pmdk"}, {"content_hash": "ee0840c765bbfef16ed2d317e8662cbe30beba97104348ac4baedb17c38242af", "fetched_at": "2026-08-29T11:55:09.531569+00:00", "kind": "homepage", "missing": false, "url": "https://pmem.io"}, {"content_hash": "c02494180bf1b66b6e11f5ba3c306e9900861811d0cd1f0160430e0fcab78f2e", "fetched_at": "2026-08-29T11:55:09.540711+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory/getting-started-guide"}, {"content_hash": "d87c84d8b3da876e15135dd02644314c51dd29245470ac1c7bddbdaa8f613387", "fetched_at": "2026-08-29T11:55:09.542716+00:00", "kind": "site_page", "missing": false, "url": "https://docs.pmem.io/persistent-memory"}, {"content_hash": "b06b837c96e33a2aec5f2f87330ad7d6b876db926c2deac0842b72285513b14d", "fetched_at": "2026-08-29T11:55:09.546166+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/about"}, {"content_hash": "b8f56b55ff6b0ae3dde3749406a8ca53619c0518dba01027d6a8a033f728c751", "fetched_at": "2026-08-29T11:55:09.544611+00:00", "kind": "site_page", "missing": false, "url": "https://pmem.io/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 51, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4382, "days_push": 294, "days_rel": 558, "gap_med": null, "n_releases_24m": 1}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}