# souffle-lang/souffle

Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.

Repository: https://github.com/souffle-lang/souffle
Canonical: https://ross.abutalabs.com/products/souffle
Homepage: http://souffle-lang.github.io/
Language: C++
License: UPL-1.0
License Family: other
Topics: datalog, static-code-analysis, souffle, translator, logic-programming
Last push: 2026-07-13T03:45:37+00:00

## Health v2 (maintenance only)
Score: 64/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 92, release rhythm 8, longevity 100
- inputs: {"age_days": 3826, "days_push": 51, "days_rel": 527, "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 1152, forks 242 (observed 2026-08-28T04:03:46.908811+00:00)

## What it is
Soufflé is a Datalog variant language for expressing static analyses in Horn clauses, with records, strong typing, aggregation, and components. It compiles logic specifications into efficient native parallel C++ programs and also offers an interpreter mode.

## Use cases
- write points-to analysis for Java in Datalog
- build a taint analysis tool
- prototype static analyses in logic
- compile Datalog to fast parallel C++
- run large-scale program analysis over facts from SQLite
- debug and profile Datalog analyses with provenance

## When to choose
- you need high-performance, large-scale static analysis expressed declaratively
- you want Datalog compiled to native parallel C++
- you need Datalog extensions like records, ADTs, aggregation, choice, or subsumption

## When to avoid
- you need a general-purpose programming language
- you want a lightweight embedded Datalog library inside another runtime without a compilation step
- your analysis is small enough that a simple in-memory Datalog engine suffices

## Facets
- artifact type: library
- maturity: active
- function: compiler, interpreter, programming-language, static-site-generator
- domain: programming-languages, compilers, developer-tools
- platform: windows, cpp, cli
- tags: datalog, static-analysis, parallel-cpp-synthesis, logic-programming, points-to-analysis, taint-analysis, static-code-analysis, linux, macos

## Member repositories
- souffle-lang/souffle (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:46.908811+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-30T06:33:34.339574+00:00, confidence not recorded.
  - readme: https://github.com/souffle-lang/souffle (fetched 2026-08-28T04:03:46.908811+00:00, sha 41172e4e557e)
  - homepage: http://souffle-lang.github.io/ (fetched 2026-08-29T12:38:15.799645+00:00, sha 98769c74a371)
- Data as of 2026-08-30T08:39:29.467469+00:00.
