Skip to content
A small, embeddable, dynamically typed scripting language.
C++ Other
  1. C++ 99.3%
  2. Other 0.7%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
doc
include/kenaf
source
test
vscode/kenaf
.gitignore
DESIGN
LICENSE
README.md
lemon.sh
main.cpp
meson.build

README.md

Kenaf

Kenaf is a scripting language designed to be embedded in C++ applications. Kenaf provides you with:

  • Simple, readable syntax.
  • A built-in object model based on prototypes.
  • An interpreter with decent performance.
  • Interaction with native C++ code.
  • A concurrent garbage collector that minimizes stalls.

Kenaf owes a great deal to Lua and Python.

Since Kenaf is most similar to Lua, it is useful for readers familiar with Lua to illustrate some of the differences between the two languages:

  • Kenaf makes a distinction between objects, arrays, and tables.
  • In Kenaf, array indexes start at zero.
  • Conditional operators chain in the same way as in Python.
  • Kenaf does not support operator overloading or other metatable hooks.
  • The most common use of metatables - to provide inheritance - is built-in.

Kenaf was designed for situations where you want to treat code as data. Using Kenaf, you can make your application scriptable or your game moddable.

You can’t perform that action at this time.