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
| Computer | Status |
|---|---|
| macOS on Intel | Tested on the machine that builds Fubby. A separate clean-machine test is still pending. |
| macOS on Apple Silicon | No download yet, and untested. |
| Linux | No download yet, and untested. |
| Windows | Not 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!
DEVELOPERCheck 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 see | What to do |
|---|---|
fubby: command not found | Run export PATH="$HOME/.local/bin:$PATH", or use the full path to the program. |
bad CPU type or Exec format error | This download only works on Intel Macs. Run fubby --version to see its target. |
| macOS says the program can't be verified | The 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 match | Don't extract or run the file. Download it again and compare. |
source files must end with .fab | Rename your program to end in .fab. |
no installed package lockfile | The project has a fubby.toml. Run fubby pkg install in that folder first. |
execution step limit exceeded | Look 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 connect | Another 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.