A functional programming language and compiler toolchain, written in Rust and targeting WebAssembly.
ƒink is a refined successor to the original fink (which compiled to JavaScript and was self-hosted). The long-term goal is a self-hosting compiler.
Status: early and experimental. Language, syntax, and tooling are all subject to change.
brew tap fink-lang/tap
brew install finkThis installs the fink toolchain. Native cross-compilation — fink compile --target=<triple> — works out of the box for all tier-1 targets (aarch64/x86_64 on macOS and Linux).
ƒink builds with stable Rust (edition 2024). See CONTRIBUTING.md for the full Makefile-driven workflow.
make deps-install
make build
make testSave as hello.fnk:
{stdout, write} = import 'std/io.fnk'
main = fn ..args:
write stdout, 'Hello, ƒink!'
0
Run it:
fink hello.fnk- docs/language.md — the language reference.
- docs/execution-model.md — how a ƒink program runs: values, effects, module lifecycle.
- docs/debugging.md — running ƒink under a debugger.
- docs/roadmap.md — designed features not yet reachable.
- CONTRIBUTING.md — build, test, contribute.
- fink-lang.org — the same docs rendered, with an in-browser playground.
- vscode-fink — syntax, language features, and a DAP client for
fink dap.
MIT © fink-lang