# mthom/scryer-prolog

A modern Prolog implementation written mostly in Rust.

Repository: https://github.com/mthom/scryer-prolog
Canonical: https://ross.abutalabs.com/products/scryer-prolog
Language: Rust
License: BSD-3-Clause
License Family: permissive
Topics: rust, prolog, prolog-interpreter, prolog-implementation, iso-prolog-standard, prolog-programming-language
Last push: 2026-08-21T19:13:37+00:00

## Health v2 (maintenance only)
Score: 70/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 17, longevity 100
- inputs: {"age_days": 3596, "days_push": 12, "days_rel": 340, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2446, forks 167 (observed 2026-08-28T04:06:52.651377+00:00)

## What it is
Scryer Prolog is a modern, ISO-compliant Prolog interpreter written mostly in Rust, built on a Warren Abstract Machine implementation. It aims to be an industrial-strength production Prolog environment that also serves as a testbed for research in logic and constraint programming.

## Use cases
- run ISO Prolog programs
- learn logic programming with a standards-compliant Prolog
- experiment with constraint and logic programming research
- embed a Prolog interpreter in Rust projects
- study Warren Abstract Machine implementation
- use tabling and delimited continuations in Prolog

## When to choose
- you need strict ISO Prolog standard compliance
- you want a modern Prolog implementation written in a safe language
- you need advanced features like tabling, attributed variables, or delimited continuations
- you want a self-contained Prolog system installable via cargo

## When to avoid
- you need mature ecosystem features like large libraries or GUI tooling
- you require interfaces specific to SWI-Prolog or SICStus
- you need a long-established production Prolog with decades of hardening

## Facets
- artifact type: cli-tool
- maturity: active
- function: interpreter, programming-language
- domain: programming-languages
- platform: rust, cross-platform, cli
- tags: prolog, iso-prolog, warren-abstract-machine, logic-programming, constraint-programming, interpreter

## Member repositories
- mthom/scryer-prolog (main) score 70

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:52.651377+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T08:31:49.853630+00:00, confidence not recorded.
  - readme: https://github.com/mthom/scryer-prolog (fetched 2026-08-28T04:06:52.651377+00:00, sha 50d59ff7ae1d)
  - registry_crates: https://crates.io/api/v1/crates/scryer-prolog (fetched 2026-08-29T10:11:46.978904+00:00, sha ab6876f3b580)
- Data as of 2026-08-30T08:39:29.467469+00:00.
