{"adoption": {"forks": 1800, "observed_at": "2026-08-28T04:10:42.376193+00:00", "stars": 10568}, "canonical_url": "https://ross.abutalabs.com/products/cryptoswift", "card": {"archived": false, "artifact_type": "library", "description": "CryptoSwift is a growing collection of standard and secure cryptographic algorithms implemented in Swift", "domain": ["security", "developer-tools", "cross-platform"], "enriched": true, "function": ["cryptography", "security", "serialization"], "health_score": 97, "homepage": "http://cryptoswift.io", "language": "Swift", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["krzyzanowskim/CryptoSwift"], "name": "krzyzanowskim/CryptoSwift", "platform": ["cross-platform"], "pushed_at": "2026-08-19T14:45:33+00:00", "repo": "krzyzanowskim/CryptoSwift", "stars": 10568, "tags": ["aes", "hashing", "hmac", "chacha20", "pure-swift", "digest", "ciphers", "sha3", "swift-package-manager", "macos", "ios", "linux", "android", "swift"], "topics": ["swift", "aes", "cryptography", "commoncrypto", "cryptoswift", "md5", "sha1", "hmac-authentication", "sha3", "cipher", "digest", "aes-gcm", "hmac"], "urls": [], "use_cases": ["encrypt and decrypt data with AES in Swift", "compute SHA-256 or MD5 hashes of strings or files", "generate HMAC signatures for API authentication", "implement ChaCha20 stream cipher encryption", "calculate CRC32 checksums in Swift", "hash passwords and verify digests cross-platform on Linux"], "what_it_is": "CryptoSwift is a pure Swift library providing standard cryptographic algorithms including AES, ChaCha20, SHA family hashes, HMAC, and CRC. It offers convenient Swift extensions and streaming APIs across Apple platforms, Linux, and Android.", "when_to_avoid": ["you need formally audited or constant-time crypto for highly sensitive production secrets", "you only need Apple-platform crypto and can use the system CommonCrypto/CryptoKit", "you need advanced protocols like TLS, certificates, or public-key infrastructure", "you require FIPS-validated implementations"], "when_to_choose": ["you need pure Swift crypto without C dependencies like CommonCrypto", "you want convenient String/Data extensions for hashing and encryption", "you target Apple platforms plus Linux or Android with one codebase", "you need streaming or incremental hash/cipher updates"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cryptoswift", "repo": "krzyzanowskim/CryptoSwift", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "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:10:42.376193+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.376193+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:18:32.007247+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7a97c3535619a2a82237ef406fdfa075918da7c82021799e7879e896c9ca31", "fetched_at": "2026-08-28T04:10:42.376193+00:00", "kind": "readme", "missing": false, "url": "https://github.com/krzyzanowskim/CryptoSwift"}, {"content_hash": "5b16345c9ca62909f840eb5289b4d5e2efdfd79f2bef4fc2954f8e904523f0c8", "fetched_at": "2026-08-29T08:17:41.189470+00:00", "kind": "homepage", "missing": false, "url": "http://cryptoswift.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 48}, "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": 4441, "days_push": 14, "days_rel": 133, "gap_med": 185, "n_releases_24m": 4}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}