Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system.

Anywhere you can run Lua code, you can run Fennel code.

;; Sample: read the state of the keyboard and move the player accordingly
(local dirs {:up [0 -1] :down [0 1] :left [-1 0] :right [1 0]})

(each [key delta (pairs dirs)]
  (when (love.keyboard.isDown key)
    (let [[dx dy] delta
          [px py] player
          x (+ px (* dx player.speed dt))
          y (+ py (* dy player.speed dt))]
      (: world :move player x y))))


Install with Luarocks or grab the Fennel repository and run it from there:

    $ git clone https://github.com/bakpakin/Fennel && cd Fennel
    $ ./fennel --compile code.fnl > code.lua
    $ ./fennel --repl

That's too much work!

Fine, you can use Fennel right here without installing anything:



Fennel uses GitHub for development; bug reports and feature requests are tracked in the issue system there.

Most discussion of Fennel happens on the #fennel channel on Freenode.

There is also a wiki for collecting ideas.

Fennel is copyright © 2016-2018 Calvin Rose and contributors. released under the MIT license. This website is under the same terms and also developed on GitHub.