agora alternatives and similar packages
Based on the "Embeddable Scripting Languages" category.
Alternatively, view agora alternatives based on common mentions on social networks and blogs.
-
expr
DISCONTINUED. Expression language and expression evaluation for Go [Moved to: https://github.com/expr-lang/expr] -
RuleGo
⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go. -
Gentee script programming language
Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of agora or a related project?
Popular Comparisons
README
The agora programming language
Agora is a dynamically typed, garbage collected, embeddable programming language. It is built with the Go programming language, and is meant to provide a syntactically similar, loose and dynamic companion to the statically typed, machine compiled Go language - somewhat like Lua is to C.
Installation
go get -t github.com/PuerkitoBio/agora/...
This will install the agora packages as well as the agora
command-line tool. See agora -h
for help, provided the $GOPATH/bin
path is in your exported path. The -t
flag installs the test dependencies, it works only on Go 1.2 and later, omit it otherwise.
Example
Much more examples are available in the wiki and the source code under /testdata/src, but to give a taste of the syntax, here is the mandatory hello world
:
// Output: Hello, Agora !
fmt := import("fmt")
func greet(name) {
fmt.Println("Hello,", name, "!")
}
greet("Agora")
A few things to note:
- It looks very similar to Go, minus the types.
import
is a built-in function, not a keyword. This is important with dynamically-loaded modules, it gives you control of where this overhead of loading and compiling the code is done. It returns the value exported by the module - in this case, an object that exposes methods likePrintln
.- Obviously, since this is a dynamically-typed language, arguments have no types.
:=
introduces a new variable. Using an undefined variable is an error, so this statement could not have been=
.- Statements are valid in the top-level (module) scope. That's because a module (the name for an agora file) is an implicit (top-level) function.
- Semicolons are managed just like in Go, so although they are inserted in the scanning stage, they are optional (and usually omitted) in the source code.
Resources
- Getting started: https://github.com/PuerkitoBio/agora/wiki/Getting-started
- Documentation's index in the wiki: https://github.com/PuerkitoBio/agora/wiki
- Source code documentation on GoDoc: http://godoc.org/github.com/PuerkitoBio/agora
Changelog
v0.2.0 / 2013-10-08
- Coroutines, closures, for..range
v0.1.0 / 2013-09-17
- Initial release
License
Agora is licensed under the BSD 3-Clause License, the same as the Go programming language. The full text of the license is available in the LICENSE file at the root of the repository.
*Note that all licence references and agreements mentioned in the agora README section above
are relevant to that project's source code only.