{"adoption": {"forks": 85, "observed_at": "2026-08-28T04:05:53.152577+00:00", "stars": 1911}, "canonical_url": "https://ross.abutalabs.com/products/kalker", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Scientific calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals", "domain": ["mathematics", "developer-tools"], "enriched": true, "function": ["cli", "math"], "health_score": 95, "homepage": "https://kalker.xyz", "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["PaddiM8/kalker"], "name": "PaddiM8/kalker", "platform": ["windows", "wasm", "cli", "rust"], "pushed_at": "2026-07-10T12:49:15+00:00", "repo": "PaddiM8/kalker", "stars": 1911, "tags": ["calculator", "scientific-calculator", "calculus", "complex-numbers", "rust-crate", "command-line", "linux", "macos", "android"], "topics": ["calculator", "rust-crate", "math", "rust"], "urls": [], "use_cases": ["calculate expressions with a math-like syntax in the terminal", "define my own variables and functions for repeated calculations", "estimate derivatives and integrals of functions", "work with complex numbers, vectors, and matrices", "convert between number bases like binary, octal, and hex", "load a file of predefined physics constants and functions", "compute sums and products over a range", "use a calculator as a Rust library in my project"], "what_it_is": "Kalker is a scientific calculator CLI and web app written in Rust with math-like syntax, supporting user-defined variables and functions, complex numbers, vectors, matrices, and numerical differentiation and integration. It is also available as a Rust crate and npm package, and runs on Windows, macOS, Linux, Android, and in browsers via WebAssembly.", "when_to_avoid": ["you need exact symbolic algebra or a full computer algebra system", "you need highly accurate higher-order derivatives, since estimates can be inaccurate", "you need plotting or graphing capabilities", "you need a GUI-first calculator experience"], "when_to_choose": ["you want a fast terminal-based scientific calculator with natural math syntax", "you need user-defined functions, piecewise functions, and variables in a calculator", "you need quick numerical derivative/integral estimation or root finding", "you want a calculator that runs cross-platform or in the browser via WebAssembly"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kalker", "repo": "PaddiM8/kalker", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "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:05:53.152577+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:53.152577+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:10:46.436758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2ad9b4870c3c78e991a153315f1a11a7301b4e6bfdc58b13368524f7b2c862c", "fetched_at": "2026-08-28T04:05:53.152577+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PaddiM8/kalker"}, {"content_hash": "2c2bb19dcc1581ddb4103d9c631323fd45b3d514ac9bb05f63d44dd9c6ff4559", "fetched_at": "2026-08-29T10:49:54.321300+00:00", "kind": "homepage", "missing": false, "url": "https://kalker.xyz"}, {"content_hash": "0290d10c0aaa536a0fb1994f256aa9c1d76f0a5e5013b1bdf5051bdb97ae57d7", "fetched_at": "2026-08-29T10:49:54.324326+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kalker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 60}, "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": 2281, "days_push": 54, "days_rel": 54, "gap_med": 322.0, "n_releases_24m": 3}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}