Automic VaultAutomic Vault

brew

Install souffle with Homebrew, Nix

Logic Defined Static Analysis. Version 2.5 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install souffle

local Homebrew formula metadata

Linux

Nixverified · 92%
nix profile install nixpkgs#souffle

nixpkgs package indexes · pkgs/by-name/so/souffle/package.nix · source: api.github.com

overview

Package summary

Logic Defined Static Analysis

Commands and aliases

  • souffle
  • souffle-compile.py
  • souffleprof

history

Project history and usage

Soufflé is a Datalog-inspired logic programming language and synthesis tool for static analysis. Its command-line tools compile or interpret Datalog-like specifications and can synthesize parallel C++ programs from logic rules.

Project history

The official documentation says Soufflé was initially designed at Oracle Labs for crafting static analysis in logic. Its publication list shows the research lineage: an ASWEC 2015 experience report, CAV and CC papers in 2016, and later work on indexes, data structures, provenance, interpretation, and incrementalization.

The public GitHub repository was created in March 2016 and presents itself as the official repository for the Soufflé language project. The README describes Soufflé as similar to Datalog, with records, and frequently used as a domain-specific language for analysis problems.

Adoption history

Soufflé's adoption has been strongest in program analysis and research tooling. The official docs list applications including Java static analysis with Doop, network analysis, data analytics, cloud-computing security analysis, and smart-contract security analysis with Gigahorse.

Packaging reflects that specialist audience. The official install page documents Ubuntu/Fedora/Oracle Linux packages, source builds, and a Homebrew tap; the Homebrew metadata in this batch also records a packaged `souffle` formula in Homebrew and Nix.

How it is used

Users write relations, facts, and rules in Soufflé, then run the `souffle` CLI to evaluate the program or synthesize efficient C++ for larger analyses. The ecosystem also includes profiling and compile helper tools such as `souffleprof` and `souffle-compile.py`.

Common usage is not a general scripting task but analysis construction: points-to analysis, taint analysis, security checks, graph reachability, and other rule-heavy computations where Datalog is concise and generated code needs to be fast.

Why package nerds care

Soufflé is package-nerd significant because it packages a research compiler and Datalog runtime into a usable developer CLI. It is a bridge between papers, static-analysis frameworks, and installed command-line tools.

It also shows why package managers matter for research software: reproducible installation makes it much easier for analyzers, benchmarks, and downstream tools to depend on the same language implementation.

Timeline

  • 2015: Soufflé-related Datalog static-analysis experience report published.
  • 2016: Soufflé CAV and CC papers published and public GitHub repository created.
  • 2021: PLDI paper published on an efficient interpreter for Datalog by de-specializing relations.
  • 2025: Soufflé 2.5 released on GitHub.

Related projects

  • Datalog is the language family Soufflé extends for large-scale analysis.
  • Doop is named by the official docs as a Java static-analysis application using Soufflé-style Datalog analysis.
  • Gigahorse is named by the official docs as a smart-contract security-analysis application.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 4 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
soufflecliglobal executable
souffle-compile.pycliglobal executable
souffleprofcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version2.5
manager updated
local dataok
upstreamcurrent
latest detected2.5

https://github.com/souffle-lang/souffle

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:souffle
Version2.5
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/souffle
Homepagehttps://souffle-lang.github.io
Repositoryhttps://github.com/souffle-lang/souffle
Upstream docshttps://souffle-lang.github.io/docs.html
LicenseUPL-1.0
Source archivehttps://github.com/souffle-lang/souffle/archive/refs/tags/2.5.tar.gz
Build dependenciesbison, cmake, mcpp, pkgconf
Uses from macOSlibffi, ncurses, sqlite
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namesouffle
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

souffle

nix profile install nixpkgs#souffle
  • normalized package name match
  • Matched by: Souffle
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/so/souffle/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment