Cell

Cell is an actor-based scripting language for building concurrent applications. It combines a familiar JavaScript-like syntax with the actor model of computation.
Key Features
- Actor Model — isolated memory, message passing, no shared state
- Immutability —
stone()makes values permanently frozen - Prototype Inheritance — objects without classes
- C Integration — seamlessly extend with native code
- Cross-Platform — deploy to desktop, web, and embedded
Quick Start
// hello.ce - A simple actor
log.console("Hello, Cell!")
$_.stop()
cell hello
Documentation
- Cell Language — syntax, types, and built-in functions
- Actors and Modules — the execution model
- Packages — code organization and sharing
- Command Line — the
celltool - Writing C Modules — native extensions
Standard Library
- text — string manipulation
- number — numeric operations
- array — array utilities
- object — object utilities
- blob — binary data
- time — time and dates
- math — trigonometry and math
- json — JSON encoding/decoding
- random — random numbers
Architecture
Cell programs are organized into packages. Each package contains:
- Modules (
.cm) — return a value, cached and frozen - Actors (
.ce) — run independently, communicate via messages - C files (
.c) — compiled to native libraries
Actors never share memory. They communicate by sending messages, which are automatically serialized. This makes concurrent programming safe and predictable.
Installation
# Clone and bootstrap
git clone https://gitea.pockle.world/john/cell
cd cell
make bootstrap
The Cell shop is stored at ~/.cell/.