Skip to content
FutureBlitz

    Install

    Changelog

    What each release of FutureBlitz changed, newest first.

    FutureBlitz 1.0.0

    The first stable release, of the language, its standard library, and its tools.

    The language

    • Values and types: sized integers, Float and Double, Bool, Char, String, tuples, arrays, Maps, and ranges, with types inferred from values.
    • Your own types: Structs, which are values, and Classes, which are references, with Properties, inheritance, Interfaces with default Methods, Enums, Operators, and Extend.
    • Null safety: a type that can be Null says so, and the compiler checks it before it’s used.
    • Memory: reference counting, with no garbage collector, Weak references, Defer, and leak reports in debug builds.
    • Errors: Throws, Try, Catch, and Finally, and panics with stack traces of FutureBlitz’s own names and lines, in release builds too.
    • Generics: generic Functions and types, constraints, inference, and defaults, compiled for each use.
    • Concurrency: Spawn and Task, Parallel For, Channel, Mutex, and Atomic, Sendable and Shared Class, Async and Await, and coroutines with schedulers; the compiler stops data races between threads.
    • Modules and packages: one module a file, Import and From, Public, Package, and Private, and project.toml.
    • C interop: Extern blocks, @CLayout Structs, callbacks, pointers in Unsafe code, and native libraries in project.toml.
    • Compile-time code: Consts, attributes, reflection, #If, and Embed.

    The standard library

    More than 200 modules, written in FutureBlitz and documented from their own doc comments, in twelve areas: core, collections, text, data formats, files and streams, networking and HTTP, concurrency, math, time, crypto and compression, images and the terminal, and the OS and processes. The C libraries they’re built on link in statically.

    The tools

    • fb: new, check, build, run, test, fmt, doc, and bindgen, and add, update, search, publish, yank, owner, login, and logout for packages.
    • Builds: native executables through LLVM, linked by fb’s own lld, for Windows on x64, and macOS and Linux on x64 and arm64. Windows and Linux need no C compiler; macOS needs Apple’s Command Line Tools, for its SDK.
    • The formatter: one style, with the line width the only setting.
    • Tests: @Test Functions, std.test’s Expect, and doc comments’ examples run as tests.
    • Docs: /// and //! doc comments in Markdown, and fb doc’s JSON of a package’s API.
    • Debugging: debug info for any debugger, and VS Code debugging through CodeLLDB.
    • Editors: the VS Code extension, and fb’s language server for every other editor.
    • Packages: futureblitz.dev’s registry, fb.lock, other registries and mirrors, and trusted publishing from GitHub Actions.
    • Installing: winget, Homebrew, apt, dnf, installers, and install scripts, on the download page.

    Report an issue with this page or with FutureBlitz on GitHub.