ChaiScript: Easy C++ Scripting

Jon and I released the first release of ChaiScript earlier today. ChaiScript is designed to make it trivially easy to use scripting in your C++ application and to expose your C++ to the scripting system.

ChaiScript is a header only implementation. It requires no external libraries and is distributed under the BSD license, making it free and easy to distribute.

So, how easy is easy, really? How does 3 lines of code sound for a classic hello world example?

#include <iostream> 
#include <chaiscript/chaiscript.hpp>
 
int main(int argc, char *argv[]) 
{
  chaiscript::ChaiScript_Engine chai;
  chai.evaluate_string("print('Hello World');");
}

Of course, this example is quite limited in usefulness. But I want to keep this article short and not get into too much detail. So, I will provide on more example that shows how to expose a C++ function to ChaiScript.

#include <iostream> 
#include <chaiscript/chaiscript.hpp>
 
std::string get_message()
{
  return "Hello World";
}
 
int main(int argc, char *argv[]) 
{
  chaiscript::ChaiScript_Engine chai;
  dispatchkit::register_function(chai.get_eval_engine(), &get_message, "get_message");
  chai.evaluate_string("print(get_message());");
}

ChaiScript never gets much more difficult than that. Stay tuned for more ideas, or check out the The Book of ChaiScript for more information.