Build fast.
Keep the guarantees.
ProScript combines Go-like clarity and concurrency with expressive types, exhaustive pattern matching, and explicit mutation—compiled to native code.
Simple enough to hold in your head.
Strong enough to trust.
ProScript is designed for the code behind your product: servers, APIs, workers, and command-line tools. You get managed memory and a small mental model without giving up expressive domain types.
Make impossible states visible
Model every outcome directly. When the model changes, the compiler shows every branch that needs your attention.
enum CreateUserError {
InvalidEmail,
Conflict(UserId, string),
Storage(DatabaseError),
}
return match create_user(input) {
Ok(user) => Response::created(user),
Err(CreateUserError::Conflict(id, reason)) =>
Response::conflict(id, reason),
Err(error) => map_error(error),
};Thousands of tasks.
One readable program.
Spawn ordinary calls into lightweight green tasks. Move typed values through channels. Protect the state that truly needs sharing. The compiler rejects writable caller state crossing a task boundary.
- spawnstarts an independent green task
- task.await()suspends only the current task
- selectcommits exactly one ready operation
- Shared<T>contains deliberate shared mutation
Business logic should look like business logic.
Parse once. Carry exact types forward.
JSON decoding, enums, options, and results keep invalid input out of the core of your program.
Run independent work concurrently.
Green tasks and typed channels express coordination without futures, promises, or colored function signatures.
Handle every outcome explicitly.
Exhaustive matches make error paths part of the design rather than an afterthought.
Learn from what works.
Keep one coherent language.
ProScript is not a Go superset, a Rust replacement, or Gleam on a different runtime. It takes lessons from languages developers already love and resolves them around one goal: reliable concurrent software without a systems-language tax.
Go
Concurrency and garbage collection should feel built in, not bolted on.
official site ↗02 · confidenceRust
A rich type system can prevent whole categories of bugs before execution.
official site ↗03 · clarityGleam
Type-safe concurrent systems can still be friendly and approachable.
official site ↗04 · iterationJavaScript
Fast feedback and expressive application code keep developers in flow.
official site ↗Read less.
Run something.
Edit real ProScript and execute it with the native Linux compiler. Every run happens in a disposable, network-isolated sandbox with strict resource limits.
Preparing the ProScript playground…
The fast path is also the verified path.
The compiler does not execute its own unchecked assumptions. Every major representation gains evidence before the next phase can consume it.
$ proscript init acme.hello
created proscript.toml
$ proscript check .
✓ program is valid
$ proscript run .
Hello from ProScript
$ proscript test .
3 passed · 0 failedOne language.
One way to work.
The compiler, formatter, test runner, package workflow, diagnostics, and language server are developed together. A feature is not complete until every surface agrees.
Your server language should help you think.
Explore the syntax, follow the compiler, and help shape a language built for clear, concurrent software.