Code with feather-light syntax
Feather is a minimal and expressive programming language built on C++ and Ruby, designed to be readable from day one.
Unix
curl https://codeberg.org/Feather_lang/Feather/raw/branch/dev/install.sh | bash
Why Feather?
Built for clarity
Readable by default
Keywords like VARIABLE, COUNTER, and LIST make code understandable without any extra comments.
Powered by C++ & Ruby
Feather runs on C++ making it very quick. It also lets you drop Ruby code in whenever needed!
Lightning fast
Being built on C++, Feather is very quick for being an interpreted language. One could even say... lightning fast
Web-capable
Define routes with SERVER, serve files, and handle HTTP requests, all with Feather's clean syntax.
Linux & Windows
Runs on Linux and Windows. One (or a couple) install command(s) gets you up and running with the feather CLI.
See it in action
Feather in practice
^ Variables hold text, counters hold numbers
VARIABLE name = "What's your name? ".take
COUNTER score = 0
^ Increment and check
REPEAT 5 AS i:
score += i
OUT "Hello, {name}! Your score is {score}." &wrap
^ Control flow
IF score >= 10:
OUT "Great score!" &wrap
ELSE:
OUT "Keep going!" &wrap
^ Lists and Tables
LIST fruits = ("apple", "banana", "cherry")
fruits.append("mango")
TABLE user = {
"name": "Alice",
"age": "30",
"scores": ("95", "87", "92")
}
^ Iterate
FOR fruit IN fruits:
OUT "{fruit}" &wrap
^ Table methods
OUT user.has("name") &wrap ^ true
OUT user["scores"][0] &wrap ^ 95
^ A simple web server
SERVER ('/', ('GET')):
RETURN 'index.html'
END
SERVER ('/api/greet', ('GET', 'POST')):
TABLE body = request.body.dynamic()
VARIABLE name = body["name"]
RETURN `{"message": "Hello, {name}!"}`
END
SERVER.start()