Small and embeddable
No garbage-collector tuning, no ambient authority. A language designed to live inside a host application, with a specification you can read end to end.
Small language. Clear boundaries.
HollowScript is a small, statically typed language built to live inside your application. Give scripts the capabilities they need, with boundaries you control.
Public preview Apple Silicon macOS
uses print
fn greet(name: String): String {
return "Hello, ${name}"
}
constant message = greet("HollowScript")
effect print(message)
Example output
Hello, HollowScriptNo garbage-collector tuning, no ambient authority. A language designed to live inside a host application, with a specification you can read end to end.
Every expression has a type known before the program runs. Optionals, records, enums, generics and Result make the shape of your program explicit.
A script can only print, open a file or reach the network when the host grants the capability and the script declares it with uses.
uses print
record Task = { title: String, priority: Int, done: Bool }
fn describe(t: Task): String { if t.done { return "${t.title}: done" } return "${t.title}: priority ${t.priority}"}
constant tasks: [Task] = [ { title: "Write the parser", priority: 1, done: false }, { title: "Freeze the spec", priority: 1, done: true }]
for t in tasks { effect print(describe(t))}Output:
Write the parser: priority 1Freeze the spec: doneHollowScript™ is a trademark of Soulstack. See the trademark policy.