prolog | go-lua | |
---|---|---|
14 | 4 | |
641 | 3,185 | |
1.1% | 1.3% | |
5.4 | 3.3 | |
2 months ago | 8 months ago | |
Go | Go | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
prolog
-
Mangle, a programming language for deductive database programming
Other resources for logic programming and Go:
ichiban/prolog - ISO Prolog interpreter in pure Go, getting close to v1: https://github.com/ichiban/prolog
trealla-prolog/go - ISO Prolog interpreter embedded via WASM: https://github.com/trealla-prolog/go
guregu/pengine - library for interfacing with Pengines (SWI-Prolog's RPC protocol): https://github.com/guregu/pengine
biscuit-auth/biscuit-go - Biscuits are a fancy auth token with a little Datalog engine: https://github.com/biscuit-auth/biscuit-go
I'm a big fan of logic programming. We've been seeing a small resurgence of interest in it (for example Yarn using Prolog made some waves) and I have some optimism for its future.
- Golog library/language?
-
State machines and reconciliation loops
fully native Prolog, or embedded? I am very familiar with Go, so I was intrigued to see ichiban/prolog. This might enable me to leverage some existing libraries (GitHub, git, etc) and save Prolog for the logic that drives them.
-
Let's philosophize a bit :-)
You may also be interested in this Prolog interpreter in Go: https://github.com/ichiban/prolog
-
Interpreters built in Go
There have been several Prolog interpreters written in Golang. This one appears to be most active: https://github.com/ichiban/prolog .
-
The Power of Prolog
For Go, you have prolog as a scripting engine https://github.com/ichiban/prolog
- Prolog runtime for aws lambda?
- Prolog Go Library
-
Hacker News top posts: Jan 27, 2022
An embeddable Prolog scripting language for Go\ (2 comments)
- An embeddable Prolog scripting language for Go
go-lua
-
Jacobin: Minimal JVM written in Go and capable of running Java 17 classes
https://github.com/Shopify/go-lua
Unless you specifically need a JVM either of these will be a much more practical and mature choice for embedded scripting.
Alternatively if you prefer JS then Otto is a good choice:
-
Are there any Golang Lua VMs that support snapshotting/serializationi?
Do you know about go-lua? There's a good discussion of various go lua implementations here, including this choice quote:
-
Change go code behaviour at runtime
There are lua and Go-script options. My impression is that a few are well accepted but perhaps just a little less widely used than the first two. I cannot speak from personal experience on them. Shopify has a Lua 5.2 port: https://github.com/Shopify/go-lua and I know https://github.com/bitfield/script is one of the Go-like scripting languages, but I think it's more for a shell script replacement than embedding.
-
Show HN: LadyLua, batteries-included static Lua 5.1 interpreter
GopherLua [0] is a Lua implementation written in Go, not just a wrapper around the C implementation.
The main alternative seems to be Shopify’s go-lua [1], given that Microsoft’s golua [2] is no longer being developed. The main difference between these three implementations seems to be the supported Lua version - 5.1, 5.2 and 5.3 respectively.
[0] https://github.com/yuin/gopher-lua
[1] https://github.com/Shopify/go-lua
[2] https://github.com/Azure/golua
What are some alternatives?
go-python - naive go bindings to the CPython2 C-API
gopher-lua - GopherLua: VM and compiler for Lua in Go
scryer-prolog - A modern Prolog implementation written mostly in Rust.
go-php - PHP bindings for the Go programming language (Golang)
gval - Expression evaluation in golang
go-duktape - [abandoned] Duktape JavaScript engine bindings for Go
ciao - Ciao is a modern Prolog implementation that builds up from a logic-based simple kernel designed to be portable, extensible, and modular.
goja - ECMAScript/JavaScript engine in pure Go
otto - A JavaScript interpreter in Go (golang)
OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.
golua - Go bindings for Lua C API - in progress