An embeddable ISO Prolog interpreter for Go with a database/sql-like API.
ichiban/prolog is an embeddable ISO Prolog interpreter written in Go that allows developers to integrate logic programming capabilities directly into their Go applications. It solves the problem of adding declarative, rule-based reasoning to Go programs through a standards-compliant Prolog engine.
Go developers who need to embed logic programming capabilities, implement rule engines, or add declarative reasoning to their applications.
Developers choose ichiban/prolog for its strict ISO Prolog compliance combined with a Go-friendly API that mimics database/sql, making it uniquely approachable for Go programmers compared to other scripting engines.
The only reasonable scripting engine for Go.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements ISO/IEC 13211-1:1995, Prologue for Prolog, and DCG standards, ensuring reliable execution of standard Prolog code as highlighted in the README.
Uses a database/sql-like interface, making it intuitive for Go developers to embed and query Prolog programs seamlessly, similar to working with databases.
Supports sandboxing, custom predicates written in Go, and custom term types, allowing tailored logic environments as demonstrated in the examples.
Enables logic programming paradigms within Go, providing a unique approach for rule-based systems and reasoning compared to imperative scripting engines.
With only a few community extensions like predicates and kagomelog, it lacks the extensive library support of more popular scripting languages such as Lua or JavaScript.
As an embedded interpreter, it incurs runtime overhead compared to native Go code, making it less suitable for latency-sensitive or high-throughput applications.
Logic programming requires a mindset shift from imperative programming, which can be a barrier for teams unfamiliar with Prolog, limiting broader adoption.