Fae is an unsafe systems programming language with a focus on utility, comfort, and tooling. It steals with flattery from such languages as Rust, Zig, Odin, and Swift. Read the language reference for a detailed snapshot of the current status of the Fae language.
>>> cat main.fae
import fae.collections.list.List
fn main() {
mut list = List<str>.new()
defer list.free()
list.push("Hello")
list.push("There!")
for item, _, is_last in list.items {
print(item)
if is_last.! => print(", ")
}
println("")
}
>>> fae run --quiet
Hello, There!
>>> cat main.fae
fn main() {
println("Hello world")
println(f"Welcome to {language()}!")
}
fn language(): str {
return "Fae"
}
>>> fae run --quiet
Hello world
Welcome to Fae!
Browse a selection of example programs here
The Fae compiler and standard library are very incomplete, missing features include traits, allocator system, error system, and much more.
Read the language reference for a detailed snapshot of the current status of the Fae language.
Join the Fae project Discord server to participate in discussion and ask questions. While not ideal, Discord was chosen to maximize approachability and accessiblity.
The Fae compiler is immature and incomplete but it can be installed and experimented with today. Here there be dragons, please open an issue when you encounter bugs!
Statically linked compiler, should run on any recent Linux system
By default expects GNU ld to be in the path
- macOS AArch64: Secondary supported platform, binaries available on the releases page.
Tested on macOS 12-14 (may work on 11)
By default expects platform shipped ld to be in the path
- Windows x64: Untested and unsupported as of yet. Extremely high priority to support in the near future.
These are the core set of intended supported platforms. Supporting each of these operating systems on the opposite architectures is a goal but lower priority at present.
Primitive syntax support for VSCode is available with this extension, though it lacks code formatting and language server support as those components remain to be built.
See the Build Instructions for directions on how to get up and running with a development build of the Fae language toolchain.
The Fae compiler, associated tests, scripts, and supporting infrastructure code, excluding the standard library, are licensed under the 3-Clause BSD license.
The Fae standard library, including portions required for proper compiler function, are licensed under the Unlicense license for maximally unencumbered distribution of applications built with Fae and including portions of the standard library.