Projects / ChaiScript


ChaiScript is an embedded scripting language designed from the ground up to directly target C++ and take advantage of modern C++ development techniques. Being a native C++ application, it has some advantages over existing embedded scripting languages. It uses a header-only approach, which makes it easy to integrate with existing projects. It maintains type safety between your C++ application and user scripts. It supports a variety of C++ techniques including callbacks, overloaded functions, class methods, and STL containers.

Operating Systems

RSS Recent releases

  •  27 Mar 2014 23:15

Release Notes: Official support for MSVC with C++11. All major platforms and compilers are now supported for the C++11 release. Enhanced unit tests. Adds a continue statement and fixes various use cases for for loops. Fixes the use of suffixed numbers in vector initialization. Eliminates global data, which makes code more portable and thread safe.

  •  25 Feb 2014 02:51

Release Notes: This is scheduled to be the last release which requires boost. New releases after this will require a C++11 compiler. This release adds a "continue" statement, fixes use of suffixed numbers in vector initialization, merges pretty_print fixes, fixes threading problems, fixes a linking error on MacOS Mavericks, allows non-const globals, makes sure the user cannot name a variable with "::" in it, fixes various "size" and "count" calls for compilers which have weird overloads for them, makes the module search path relative to the currently-running executable, and builds and works with wstring Windows builds.

  •  02 Dec 2012 01:32

    Release Notes: This release is in the C++11 series, supporting gcc and llvm. It adds support for automatic conversion of arithmetic types when possible and when no ambiguous method dispatch exists. Initial support for MinGW 4.7 with C++11 (ChaiScript 5.2.0) has been added.

    •  02 Dec 2012 01:32

    Release Notes: This release adds support for automatic conversion of arithmetic types when possible and when no ambiguous method dispatch exists.

    •  20 Nov 2012 06:54

      Release Notes: This release requires a C++11 compliant compiler. LLVM and GCC are currently supported. Error reporting is now greatly enhanced with the ability to show the complete stack trace and offending code for an error. Integer constants now autosize to match the C++ language standard. An "f" suffix was added for floating point values, and "u," "l," and, "ll" have been added for integer constants.

      RSS Recent comments

      08 Dec 2009 07:18 greppo

      Oops - it seems Chaiscript makes you register every method that you want exposed:

      08 Dec 2009 07:11 greppo

      I've just noticed chaiscript - elanthis, obviously lots of people wrote scripting languages in C++, but how many scripting languages give you access to all C++ objects, as Jython gives you access to all Java objects - without writing wrapper code.

      23 Sep 2009 20:37 elanthis

      It's pretty silly to claim that this is possibly the first script language to target C++. There are dozens of them. Heck, I've written 3, one of which was posted here on Freshmeat years and years ago. ChaiScript may be one of the better ones out there (or not, I don't know -- haven't really looked into it much yet), but it's definitely not even remotely close to the first. :)


      Project Spotlight


      An automated package-management tool for Slackware Linux.


      Project Spotlight


      A library that decodes and encodes GIF image files.