Scallop is a differentiable probabilistic Datalog engine implemented in Rust with Python bindings (scallopy). It compiles Scallop programs (a Datalog variant with provenance annotations) through a three-stage compiler (front AST → back normalized Datalog → RAM relational algebra) to a runtime that executes with configurable provenance semirings (unit, boolean, tropical, probabilistic, differentiable, etc.). The system supports neuro-symbolic AI by integrating with PyTorch for gradient-based learning, and provides plugins for LLMs (GPT, Gemini) and vision models (CLIP, OWL-ViT, SAM). The architecture is a monolithic Rust library (core) with multiple sub-crates for CLI tools (scli, sclc, sclrepl), Python bindings via PyO3, and a plugin system for extending with foreign functions, predicates, and attributes. Key data flows: user-provided Scallop source or facts are parsed, analyzed (type inference, boundness), transformed, and compiled into a relational algebra plan that is executed with provenance-aware dataflow operators, producing output collections. The codebase is well-structured with clear separation between compiler, runtime, and provenance layers, and includes several reusable components such as copy-on-write containers, galloping search, dual numbers for AD, batch streaming abstractions, and a self-contained SDD library for weighted model counting. While the code demonstrates strong engineering and research-grade sophistication, there is some code duplication across provenance variants and experimental/legacy directories that lower the overall quality score. The repository is actively maintained with recent commits, CI workflows, and a growing plugin ecosystem.