FascinatedBox/lily has 1,095 GitHub stars and 38 forks. GitHot measured -1 stars in 24 hours. Last checked 2026-11-09 10:23 UTC. Last push 2026-11-02.
Interpreted language focused on expressiveness and type safety.
Measured star growth
- in 24h
- -1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalLily
Lily is a programming language focused on expressiveness and type safety.
Sample
enum Color { Black, Blue, Cyan, Green, Magenta, Red, White, Yellow }
class Terminal(public var @foreground: Color, width_str: String)
{
public var @width = width_str.parse_i().unwrap_or(80)
public define set_fg(new_color: Color) {
@foreground = new_color
}
}
var terms = [Terminal(Color.White, "A"), Terminal(.Red, "40")]
terms.each(|e| e.width += 20 )
|> print
Features
Embeddable
Lily may be a statically-typed language, but the reference implementation is an interpreter. The interpreter as well as its API have been carefully designed with sandboxing in mind. As a result, it's possible to have multiple interpreters exist alongside each other.
Shorter edit cycle
Another benefit from having the reference implementation as an interpreter is a shorter turn around time. The interpreter's parser is comparable in speed to that of languages using an interpreter as their reference.
Building
You need a C compiler (C11+) and CMake (3.10+). There are no external dependencies.
To build Lily, execute the following in a terminal:
cmake .
cmake --build .
Note: Windows users may need to add -G"Unix Makefiles" to the end of the cmake
invocation.
The above will build the lily executable, as well as a liblily that you can
use with your program. It also builds pre-commit-tests.
Running tests
The centerpiece of Lily's testing is test_main.lily in the test directory.
That file imports and invokes a large number of tests that cover a lot of Lily.
The make command also builds covlib and pre-commit-tests. No additional
commands are necessary. covlib is a library that tests some parts of Lily that
native code can't test. pre-commit-tests is a special runner that executes
test_main.lily.
To run Lily's tests, execute pre-commit-tests from the directory it's in after
building Lily.
Resources
Packaging
The lily-garden repository contains a package manager (Garden) that simplifies the install of Lily packages.
License
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,330 starspublic-apis/public-apis
A collective list of free APIs
497,578 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
446,589 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,247 stars