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
    $ ./fennel code.fnl

That's too much work!

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


Looking for other versions? Docs are generated for:


Fennel's repository is on GitHub , and discussion occurs on the mailing list and the #fennel channel on Freenode. Bug reports are tracked in the GitHub issue system.

There is also a wiki for collecting ideas.

Fennel is copyright © 2016-2019 Calvin Rose and contributors. released under the MIT/X11 license. This website is under the same terms and also stored on srht.