Dynamically Loadable Standard Library for ChaiScript Interpreter 'chaiscript'
ChaiScript is a header-only C++ embedded scripting language loosely based on ECMA script. It is designed for ease of use and tight integration with C++.

Usage
The original ChaiScript repository has been split into multiple build2 packages to allow for greater flexibility.
The libchaiscript package is used to get access to the ChaiScript header-only library.
The package chaiscript makes ChaiScript's own interpreter chai available to be used.
chaiscript-stdlib exports the compiled and dynamically loadable standard library module for the basic ChaiScript engine.
Typically, you will not need to use this one.
Depends (1)
Requires (1)
Reviews
Builds
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-static_O3 |
| timestamp |
2026-05-13 11:13:59 UTC (03 22:47:17 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-O3 |
| timestamp |
2026-05-13 11:12:45 UTC (03 22:48:31 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew |
| timestamp |
2026-05-13 11:11:35 UTC (03 22:49:41 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-static_O3 |
| timestamp |
2026-05-13 10:46:12 UTC (03 23:15:04 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-O3 |
| timestamp |
2026-05-13 10:44:53 UTC (03 23:16:23 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0 |
| timestamp |
2026-05-13 10:43:06 UTC (03 23:18:10 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++-O3 |
| timestamp |
2026-05-13 10:37:41 UTC (03 23:23:35 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++-static_O3 |
| timestamp |
2026-05-13 10:37:21 UTC (03 23:23:55 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22-static_O3 |
| timestamp |
2026-05-13 10:36:47 UTC (03 23:24:29 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++ |
| timestamp |
2026-05-13 10:36:32 UTC (03 23:24:44 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22-O3 |
| timestamp |
2026-05-13 10:36:22 UTC (03 23:24:54 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22 |
| timestamp |
2026-05-13 10:35:26 UTC (03 23:25:50 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-static_O3 |
| timestamp |
2026-05-13 10:30:01 UTC (03 23:31:15 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
| timestamp |
2026-05-13 10:29:50 UTC (03 23:31:26 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-O3 |
| timestamp |
2026-05-13 10:28:45 UTC (03 23:32:31 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14 |
| timestamp |
2026-05-13 10:27:35 UTC (03 23:33:41 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
| timestamp |
2026-05-13 10:25:59 UTC (03 23:35:17 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-O3 |
| timestamp |
2026-05-13 10:25:18 UTC (03 23:35:58 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-static_O3 |
| timestamp |
2026-05-13 10:25:02 UTC (03 23:36:14 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++ |
| timestamp |
2026-05-13 10:24:26 UTC (03 23:36:50 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-O3 |
| timestamp |
2026-05-13 10:24:06 UTC (03 23:37:10 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18 |
| timestamp |
2026-05-13 10:22:49 UTC (03 23:38:27 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-static_O3 |
| timestamp |
2026-05-13 10:16:00 UTC (03 23:45:16 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-ndebug_O3 |
| timestamp |
2026-05-13 10:15:51 UTC (03 23:45:25 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-O3 |
| timestamp |
2026-05-13 10:15:13 UTC (03 23:46:03 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16 |
| timestamp |
2026-05-13 10:15:00 UTC (03 23:46:16 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_21_libc++ |
| timestamp |
2026-05-13 10:12:56 UTC (03 23:48:20 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_21 |
| timestamp |
2026-05-13 10:12:36 UTC (03 23:48:40 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
| timestamp |
2026-05-13 10:11:50 UTC (03 23:49:26 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19-static_O3 |
| timestamp |
2026-05-13 10:11:20 UTC (03 23:49:56 days ago) |
| result |
error (update) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin22.5.0 |
| tgt config |
macos_13-clang_15.0 |
| timestamp |
2026-05-13 10:11:15 UTC (03 23:50:01 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_14-bindist |
| timestamp |
2026-05-13 10:11:14 UTC (03 23:50:02 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_15-O3 |
| timestamp |
2026-05-13 10:10:58 UTC (03 23:50:18 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19-O3 |
| timestamp |
2026-05-13 10:10:44 UTC (03 23:50:32 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19 |
| timestamp |
2026-05-13 10:10:32 UTC (03 23:50:44 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_43-gcc_15-bindist |
| timestamp |
2026-05-13 10:10:16 UTC (03 23:50:59 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_15 |
| timestamp |
2026-05-13 10:10:03 UTC (03 23:51:12 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd14.1 |
| tgt config |
freebsd_14-clang_18 |
| timestamp |
2026-05-13 10:09:17 UTC (03 23:51:59 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_13 |
| timestamp |
2026-05-13 10:03:06 UTC (03 23:58:10 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18-static_O2 |
| timestamp |
2026-05-11 08:48:40 UTC (06 01:12:36 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18-O2 |
| timestamp |
2026-05-11 08:48:32 UTC (06 01:12:44 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18 |
| timestamp |
2026-05-11 08:47:45 UTC (06 01:13:31 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18-static_O2 |
| timestamp |
2026-05-11 08:42:00 UTC (06 01:19:15 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18-O2 |
| timestamp |
2026-05-11 08:41:57 UTC (06 01:19:19 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18 |
| timestamp |
2026-05-11 08:41:03 UTC (06 01:20:13 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17 |
| timestamp |
2026-05-11 08:11:37 UTC (06 01:49:39 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64-static_O2 |
| timestamp |
2026-05-08 11:30:37 UTC (08 22:30:39 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64-O2 |
| timestamp |
2026-05-08 11:30:18 UTC (08 22:30:57 days ago) |
| result |
error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_26.04-gcc_15-bindist |
| timestamp |
2026-05-08 11:21:26 UTC (08 22:39:50 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_44-gcc_16-bindist |
| timestamp |
2026-05-04 15:22:14 UTC (12 18:39:01 days ago) |
| result |
warning (update) | error (test) | log | rebuild |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64 |
| result |
excluded (unoptimized compilation with MinGW on Windows takes an eternity to finish) |
Changes
Notes:
Current Version: 6.1.0
Changes since 6.0.0
- Add namespacing support #290 @stephenberry
- Add utf parsing support
- cheatsheet.md updates
add_class utility support for scoped enums #306 @StanEpp
- Parser optimizations #300 @niXman
- Various JSON fixes #377 #400 #409 #371 @totalgee @dinghram @arcoRocks
- Various cleanups, bugfixes and warning fixes and minor performance improvements
- Support for C++17 compilers!
- Support for UTF8 BOM #439 @AlekMosingiewicz @MarioLiebisch
Changes since 5.8.6
6.0.0 is a massive rework compared to 5.x. It now requires a C++14 enabled compiler
Compiler Requirements
- MSVC 2015 or greater
- g++ 4.9 or greater
- clang 3.6 or greater
Breaking Changes
- Instantiating a ChaiScript object now, by default, builds the stdlib in
- This was done to address the most common support issues of loading stdlib dynamically at runtime
- If you want the old behavior, use include/chaiscript/chaiscript_basic.hpp
- Headers have been reorganized to fully separate stdlib/parser/engine from each other (some faster builds)
- Bootstrap functions no longer return a reference to the module added to (compile time savings)
- It's now no longer possible modify AST_Nodes (compile time, runtime efficiency)
- Function annotations no longer exist (simplifies code, reduces compile time, compile size)
New Features Added
- Modular optimization system; this can be accessed via the ChaiScript_Basic interface
- Execution tracing capability; also accessed via ChaiScript_Basic interface
- range-based for loops
for( id : container ) { } (much better performance than other loop types)
- If-init expressions (ala C++17)
- Support for passing r-value references to functions
- Support for containing unique_ptr
- Add helpers for exposing enum classes to ChaiScript
- Allow typed ChaiScript defined functions to perform conversions on call #303
Improvements
- Compile time improvements
- Compile size improvements
- Significant runtime improvements (see "Modular optimization system")
- Significant parser improvements, both with parse-time and parser initialization time (Thanks @niXman)
- Fix type conversion to bool in conditionals
Improvements Still Need To Be Made
- File location tracking has been rewritten; this currently means error location reporting is not as good as it was
- Tracing capability needs to be tested and vetted
Changes since 5.8.5
- Optimize away
return statements in lambdas also
- Allow conversions to bool in conditionals
- Don't allow
class statements inside of scopes
- Properly error when a dynamic object non-function member is called
Changes since 5.8.4
- Fix order of operations for prefix operators
- Make sure atomics are initialized properly
- Remove parsing of unused prefix
& operator
Changes since 5.8.3
- Fix case with some numeric conversions mixed with numerics that do not need conversion
Changes since 5.8.2
- Add support for reference of pointer return types
Changes since 5.8.1
- Allow casting to non-const & std::shared_ptr
Changes since 5.8.0
- Fix parsing of floats to be locale independent #250
- Various warning fixes on various platforms
Changes since 5.7.1
- Make all parser iterator operations range checked
- Parse in-string eval statements once, not once for each execution
- Fix parsing of operators (ie 1<-1 now parses)
- Fix variable scoping for functors
- Exception reduction
- Various object lifetime fixes
- Add JSON support for load / save #207
- Numeric overload resolution fixes #209
- Fix long long #208
- Add octal escapes in strings #211
- Fixed sizing of binary literals #213
- Added support for != with bool values #217
- Various value assignment vector fixes
- Fixed broken hex escape sequences from @ChristianKaeser
- Multiply defined symbols fixes #232 @RaptorFactor
- Add add_class helper #233 @vrennert
- Cheatsheet fixes #235 @mlamby
- Fix parsing of strings inside of in-string eval statements
- Allow lower-case global keyword
- Enable thread-local on MSVC (should be significant performance boost)
Changes since 5.7.0
- Build time reduction
- Build size reduction
- Performance increases
- Fixed ~20 crash-bugs found with fuzzy testing #194
- Let unhandled exceptions propogate to user
- Report eval_error when break statement is not in loop
- Fix handling of 0 length scripts closes #193
- Don't crash on arity mismatch - Specifically affects the case where no overloads exist for a given function
- Fix error printing for
bind calls
- Handle unexpected continue statement
- Check arity during bind
- Don't allow arith conversion on variadic function
- Correct
bind parameter match count
- Add in expected Boxed_Value exception cases
- Check access to AST, don't allow
; in func def
- Don't attempt arithmetic unary & call
- Don't crash on 0 param call to
bind
- Catch errors during member function dispatch
- Properly handle type of const bool &
- Automatic deduction of lambda type signatures
- Work with non-polymorphic parent/child conversions
- Move to codecov for coverage reporting
- Add
.at method for Map objects
- Various corrections for support of move-only objects
Changes since 5.6.0
- Significant code cleanups and reduction
- Smaller builds
- Faster compiles
- Less runtime memory usage
- ~2x faster runtimes
- biicode support
- method_missing feature added #164 @arBmind
- Generic objects with dynamic properties support
- Add ability to call functions contained in properties
- Add lambda captures
- Create cheatsheet.md for all-in-one reference of features
- Fix support for libc++
- Eliminate clone of return value stored locally
- Eliminate 'return' statements when last line of function
- Reduce number of runtime exceptions occuring
- Reduce copies / moves of return values.
- make
use statement return value of last statement in file
- Add ability to access fixed array sizes
- Add support for scientific notation floating point literals #174 @totalgee