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

Recent releases

  •  11 Jun 2014 21:27

    Release Notes: This release added automatic conversion of arithmetic return types, following the same rules as conversion of arithmetic types when passing parameters. It also added automatic casting up the inheritence hierarchy when possible. testing was enabled. Users can now add globals from within a script. Various static analysis fixes were made and code was modernized to C++11. Unofficial support for Haiku was added. Inability to compile on Cygwin was fixed. There were also formatting fixes, spelling corrections, various threading fixes, and performance improvements.

    •  04 May 2014 00:22

      Release Notes: Note that this version requires boost. It adds arithmetic return type automatic conversion and automatic downcasting of derived objects when possible.

      •  27 Mar 2014 17:31

        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.

        •  23 Feb 2014 21:36

          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.

          •  01 Dec 2012 22:16

            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.

            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


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.