Get started

Download Fubby, verify it, install it and run your first program. It takes about five minutes, and you don't need any other software.

What you need

ComputerStatus
macOS on IntelTested on the machine that builds Fubby. A separate clean-machine test is still pending.
macOS on Apple SiliconNo download yet, and untested.
LinuxNo download yet, and untested.
WindowsNot supported.

Download and verify

Download the archive from the Fubby releases repository, using a terminal:

curl -LO https://github.com/tusharuit25/fubby-releases/raw/main/fubby-0.1.2-x86_64-apple-darwin.tar.gz
shasum -a 256 fubby-0.1.2-x86_64-apple-darwin.tar.gz

The second command must print exactly this value. If it doesn't, delete the file and don't run it.

ce07e793ed824019183c9be42a2126a74aa5746ac5afa0d79ef7fa530473d077

A checksum detects a damaged download, but it doesn't prove who published the file. Fubby's binaries aren't signed or notarized yet, so only download from the official releases repository.

Install

The installer copies one program into a folder you own. It defaults to ~/.local/bin, and it never uses sudo.

tar -xzf fubby-0.1.2-x86_64-apple-darwin.tar.gz
cd fubby-0.1.2-x86_64-apple-darwin
./install.sh
export PATH="$HOME/.local/bin:$PATH"
fubby --version

You should see fubby 0.1.2, followed by the target and build details. To keep fubby available in new terminals, add the export line to ~/.zshrc.

Your first program

Create a file called hello.fab:

func main() {
    print("Hello from Fubby!")
    let name = "Developer"
    print(str_upper(name))
}
Hello from Fubby!
DEVELOPER

Check it for mistakes, then run it:

fubby check hello.fab
fubby run hello.fab

Every program starts at a main function with no parameters.

By installing Fubby, you accept the Fubby Software License. It's free, including for business use.

Your first project

fubby init creates a folder with a starter program, and refuses to overwrite anything that already exists.

fubby init my-project
fubby run my-project/src/main.fab

Try the complete starter app

The archive includes a notes app that uses the whole language: pages, a REST API, SQLite, a local package, background tasks and tests.

cp -R fubby-0.1.2-x86_64-apple-darwin/starter-project "$HOME/fubby-notes"
cd "$HOME/fubby-notes/app"
fubby pkg install
fubby shady test tests/preview_tests.fab
fubby snow serve src/main.fab --port 8080 --workers 4 --queue-capacity 32

Open http://127.0.0.1:8080/, and press Ctrl-C in the terminal when you're done.

Editor support

Install the Fubby plugin for Visual Studio Code for highlighting, live errors, formatting, completions and run buttons. Search for Fubby in the Extensions panel, or run:

code --install-extension twigsoftware.fubby

Fubby also works in any other text editor, with fubby check and fubby shady fmt in the terminal.

Troubleshooting

What you seeWhat to do
fubby: command not foundRun export PATH="$HOME/.local/bin:$PATH", or use the full path to the program.
bad CPU type or Exec format errorThis download only works on Intel Macs. Run fubby --version to see its target.
macOS says the program can't be verifiedThe preview isn't signed or notarized. Confirm it came from the official repository, and never turn off Gatekeeper for your whole system.
Checksum doesn't matchDon't extract or run the file. Download it again and compare.
source files must end with .fabRename your program to end in .fab.
no installed package lockfileThe project has a fubby.toml. Run fubby pkg install in that folder first.
execution step limit exceededLook for an infinite loop first. You can raise the limit if the program really needs it.
Snow can't start, or the browser can't connectAnother program may be using that port. Try --port 8081.

Uninstall

This removes only the fubby program, and never your projects or data. Run it from the extracted folder:

./uninstall.sh

If you installed with --prefix, pass the same option here.