A fast and pipeline oriented, for fast and trustworthy CI/CD automation and CLI.
- Stop fight with extreme case of bash.
- Stop pay initialization cust for simple scripts
Flint is a static typed language, ahead-of-time compiled (AOT), projected for sistem scripts, automation and data pipelines, it compiles to dependency-free native binaries with near-instant startup time.
When writing infrastructure scripts today, you generally choose between:
- Bash, simple, but fragile and hard to maintain
- Python / Node, flexible, but slow to init and heavy in execution time (runtime)
- Go / Rust, powerful but verbose for small tasks
Flint is in middle:
Simple like script. Fast like binary. But insurance for both.
Write languages that transpile to C, generally means deal with horrible error of C compiler. Flint protects you from that with a strict type checker and diagnostic engine custom dense and sensitive to the context:
[SEMANTIC ERROR][E0308]: Mismatched types in array
~~> teste.fl:1
|
1 | const mutant: arr = [1, "two", true];
| ^ ^~~~~
| | |
| | found `string`
| |
| type inferred as `int` here
|
note: arrays in Flint must contain elements of the same typeFlint uses "poison types" for smart error recovery, means he shows all errors in unique pass without false positives cascade.
Flint v1.11.0 is projected using data oriented design (DoD). When using arrays of memory continuous and pool of strings centered, the compiler frontend operates in cache limits of modern CPUs.
- Initialization near zero: flint run execute with ~10ms of init, exceeding for both python and node.
- Memory Security: A custom strict type checker protect you from C complexity while keep zero overload in runtime.
import env;
const USER = env.get("USER") ~> fallback("Stranger");
print($"Hello, {USER}!");
Run instantly:
flint run hello.fl
Or compile to native binary:
flint build hello.fl
Flint works better for:
- CLI tools and automation scripts
- DevOps workflows and CI/CD pipelines
- Data process (logs, JSON, etc)
process.exec("ps aux")
~> lines()
~> grep("root)
~> str.join("\n")
Linear and readable data flux - without nested call
- Without interpreter
- Without VM
Flint compile to C99 and produces small binaries
Flint is engineered for maximum throughput in DevOps workloads:
-
JSON Extraction: ~29x faster than Node.js and ~22x faster than Python (parses 17MB in ~13ms using O(1) Lazy Scanning). Mass File Stat: ~650x faster than Bash when inspecting 10,000 files.
-
File Cloning: Outperforms GNU cp on cold-cache huge files using Kernel-Space sendfile.
See ./benchmarks/ for full details and reproducible tests.
The easiest and recommended way to install Flint on Debian/Ubuntu-based distributions is through our official APT repository.
# 1. Add the Flint repository
echo "deb [trusted=yes] https://lucaas-d3v.github.io/flint ./" | sudo tee /etc/apt/sources.list.d/flint.list
# 2. Update and install
sudo apt update
sudo apt install flintInstalling from install.sh
Requeriments:
- Clang, GCC or TCC
- libcurl & libtcc (Dev headers)
run this:
curl -fsSL https://raw.githubusercontent.com/lucaas-d3v/flint/main/install.sh | bashThe
install.shtry install requeriments with apt, if you don't have it, install this at your own risk.
Requeriments:
- Zig (0.15.2)
- Clang, GCC r TCC
- libcurl & libtcc (Dev headers)
Run this:
git clone https://github.com/lucaas-d3v/flint
cd flint
chmod +x ignite.sh
./ignite.shBuild tools that are simple to use, predictable to execute, and fast enough to disappear.
Flint is growing and new tools are being built with it.
You can explore community projects here:
~> https://github.com/lucaas-d3v/awesome-flint
If you build something with Flint, consider adding the badge below to your README.
[](https://github.com/lucaas-d3v/awesome-flint)Which renders as:
This helps other developers discover the Flint ecosystem.