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. The Soufflé language is similar to Datalog (but has terms known as records), and is frequently used as a domain-specific language for analysis problems. Features of Soufflé Efficient translation to parallel C++ of Datalog programs (CAV'16, CC'16) Efficient interpretation using de-specialization techniques (PLDI'21) Specialized data structure for relations (PACT'19, PPoPP'19, PMAM'19) with optimal index selection (VLDB'18) Extended semantics of Datalog, e.g., permitting unbounded recursions with numbers and terms Simple component model for Datalog specifications Recursively defined record types/ADTs (aka. constructors) for tuples User-defined functors Strongly-typed types for safety Subsumption Aggregation Choice Construct (APLAS'21) Extended I/O system for relations (including SQLITE3 interfaces) C++/SWIG interfaces Provenance/Debugging (TOPLAS'20) Profiling tools