Skip to content
Phil Hagelberg edited this page Oct 20, 2024 · 67 revisions

Welcome to the Fennel wiki!

Lists of:

There are many different ways to distribute Fennel code depending on the context.

You can enhance the REPL by installing and configuring readline.

Lua Runtimes

Fennel is officially supported on:

Fennel works but isn't officially supported on these Lua implementations:

You can also use it with these bindings to PUC:

Fennel does not work on these due to bugs in the Lua implementations:

On the JVM, LuaJ and Rembulan are abandonware; they have basic string-handling bugs that cause Fennel to fail. Cobalt is an actively developed LuaJ fork and has fixed the showstopper bugs, but it's not a general-purpose Lua implementation; it's purpose-built just to support a specific Minecraft mod and lacks a package system and basic I/O functions. You can use it to run Fennel code, but it requires some tricks.

This only means that they cannot run the Fennel compiler. Code written in Fennel and then AOT-compiled to Lua will usually work fine, except on Guile where almost nothing works.

Tools

These tools support Fennel right out of the box:

These tools support Fennel with some manual tweaks:

  • bat A cat(1) clone with syntax highlighting and Git integration (e.g. install this repo as a bat Custom Language)

Scripting via embedded Fennel

Use Fennel instead of Lua to configure/script your software:

  • awesome-wm (How to use Fennel to configure the window manager awesome)
  • OpenResty REST API (Example project for building a JSON REST API with Fennel on OpenResty)
  • Neovim (It can be configured in Lua and thanks to Hotpot you can use Fennel wherever Lua is supported (which is pretty much everywhere: plugins, colors, syntax, etc.))
  • Spacehammer (keyboard-driven workflows for Mac OS)
  • LuaTex. LuaTeX is a fork of the TeX typesetting system with hooks for Lua integration. LuaTeX contains an embedded Lua interpreter, so it can run Fennel code. See the Fennel in LuaTeX wiki page for details.

Support / more resources

  • On Lua:
    • Lua mailing list - for questions about the Lua language itself or specific Lua modules (most module authors hang out there!)
    • Lua documentation - documentation on the Lua language, including the reference manual
    • Lua forum - a beginner friendly Lua community
  • There are lots of recordings of great talks from FennelConf on a variety of different Fennel topics.
Clone this wiki locally