A small language with a clear boundary
Tiny scripts.
Solid C++.
Thimble is a header-only scripting language for C++17. Give your application small rules and automation hooks without bringing a whole runtime along.
fn greet(name) {
return "Hello, " + name;
}
let message = greet(user_name);
emit(message);
return null;
Keep the boundary clear
Useful scripting without the surprise baggage.
Thimble gives the script only what the host chooses to bind. Files, network, process access and other capabilities stay outside by default.
Small by design
Five runtime types, lexical scope, functions and the control flow needed for real application rules.
Host decides
Bind C++ values and callbacks explicitly. A script cannot discover capabilities on its own.
Bounded runs
Structured diagnostics, execution-step limits and call-depth limits make embedding easier to reason about.
Readable at a glance
A little language for the little jobs.
Use a script for policy, configuration rules, menu logic, validation or an automation hook. Compile once and execute again with fresh host values.
See the C++ binding →var score = initial_score;
var tries = 0;
while (tries < max_tries) {
if (score >= passing_score) {
return "accepted";
}
score = score + retry_bonus;
tries = tries + 1;
}
return "review";
The first release
Just enough language.
No implicit conversions. No hidden global state. No object system to learn before writing the first rule.
Ready when you are
Put a small script where a large system feels heavy.
Read the specification, include the single generated header, and bind only the values your application wants to share.