Installation Guide
Download the Floria Tools
This section is a placeholder. We are currently not publishing a distribution in this early phase of development. For now, skip below to building from source.
Check out our published distributions.
Included are floriad, floriactl, the examples, and this documentation. The binaries are optimized builds with all the default features enabled.
Building Floria from Source
If you need a build for other architectures or targets, with debug information, or with features other than the defaults, then you can build it yourself.
Development Environment
Development at this early stage happens simultaneously in multiple git repositories. Thus it is recommended to use the Khutulun Development Environment, which is configured for the latest commits in all dependencies.
However, if you want to build a specific released version of Floria then it is enough to just clone its repository and continue with “Prerequisites” below:
git clone https://codeberg.org/tliron/floria.git
cd floria
# Checkout the version tag you want
git checkout v0.0.4
Prerequisites
We assume Linux for the build environment. Note that you can crosscompile from Linux to all of Rust’s supported architectures and targets.
You need the Rust compiler and standard library as well as its Cargo build system. You can get everything at once via rustup.
We’ll also need the WASI (preview 2) target libraries for Rust in order to build our Wasm plugins.
Finally, we need either gcc or Clang. We recommend also installing the Wild linker, which Puccini can detect and use for faster linking of debug builds.
To install all prerequisites:
# Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Configure PATH (you might want to add this to your ~/.bashrc):
. ~/.cargo/env
# Add WASI target:
rustup target add wasm32-wasip2
rustup +nightly target add wasm32-wasip2
# Compiler requirements:
# Fedora world:
# sudo dnf install gcc clang openssl-devel
# Debian world:
# sudo apt install build-essential clang libssl-dev
# Arch world:
# sudo pacman -S base-devel clang openssl
# Wild linker:
cargo install --locked wild-linker
Build Floria CLI Tools
# Into the Floria git repository
cd floria
# Build!
scripts/build
# Verify it
floriad version --build
The default for scripts/build is a standard LTO release build. For the most optimized build enable PGO:
scripts/build -p
Note that PGO currently provides a very modest performance boost (~1%) and can take ~8 minutes to build.
During development it may be preferable to build quicker and also include debug information:
scripts/build -dcln
Run scripts/build -h to see available arguments and see its source for supported environment variables.