Compatibility matrix
The framework’s features have different support levels across runtimes. This page is the definitive reference.
For each row:
- ✓ = supported, tested in CI.
- ⚠ = works, but not actively CI’d.
- ✗ = not supported.
- N/A = doesn’t apply.
| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
Actor base class | ✓ | ✓ | ✓ |
ActorSystem | ✓ | ✓ | ✓ |
Props + withDispatcher etc. | ✓ | ✓ | ✓ |
MicrotaskDispatcher / ImmediateDispatcher / ThroughputDispatcher | ✓ | ✓ | ✓ |
BoundedMailbox / PriorityMailbox | ✓ | ✓ | ✓ |
| Supervision strategies | ✓ | ✓ | ✓ |
context.timers + system.scheduler | ✓ | ✓ | ✓ |
| Death watch | ✓ | ✓ | ✓ |
become / stash / unstashAll | ✓ | ✓ | ✓ |
| Pattern matching (ts-pattern) | ✓ | ✓ | ✓ |
Typed API
Section titled “Typed API”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
Behaviors.* combinators | ✓ | ✓ | ✓ |
TypedActor | ✓ | ✓ | ✓ |
spawnTyped / spawnTypedChild / typedProps | ✓ | ✓ | ✓ |
Routing + patterns
Section titled “Routing + patterns”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
Router.* | ✓ | ✓ | ✓ |
CircuitBreaker | ✓ | ✓ | ✓ |
BackoffSupervisor | ✓ | ✓ | ✓ |
retry, pipeTo, after | ✓ | ✓ | ✓ |
Cluster
Section titled “Cluster”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
| Cluster join / membership | ✓ | ✓ | ⚠ |
| Gossip + failure detector | ✓ | ✓ | ⚠ |
TcpTransport | ✓ | ✓ | ⚠ |
| TLS on cluster transport | ✓ | ✓ | ⚠ |
InMemoryTransport (tests) | ✓ | ✓ | ✓ |
ClusterSingleton | ✓ | ✓ | ⚠ |
ClusterSharding | ✓ | ✓ | ⚠ |
DistributedPubSub | ✓ | ✓ | ⚠ |
DistributedData | ✓ | ✓ | ⚠ |
| Cluster router | ✓ | ✓ | ⚠ |
| Receptionist | ✓ | ✓ | ⚠ |
KubernetesLease | ✓ | ✓ | ⚠ |
InMemoryLease | ✓ | ✓ | ✓ |
Persistence
Section titled “Persistence”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
InMemoryJournal | ✓ | ✓ | ✓ |
InMemorySnapshotStore | ✓ | ✓ | ✓ |
SqliteJournal | ✓ (bun:sqlite) | ✓ (better-sqlite3 peer dep) | ✗ |
SqliteSnapshotStore | ✓ | ✓ | ✗ |
CassandraJournal | ⚠ | ✓ (cassandra-driver) | ⚠ |
CachedSnapshotStore | ✓ | ✓ | ✓ |
PersistentActor | ✓ | ✓ | ✓ |
DurableStateActor | ✓ | ✓ | ✓ |
ProjectionActor | ✓ | ✓ | ✓ |
| Object-storage snapshot store (filesystem) | ✓ | ✓ | ✓ |
| Object-storage snapshot store (S3) | ⚠ | ✓ | ⚠ |
| Schema-migration adapters | ✓ | ✓ | ✓ |
| Replicated event sourcing | ⚠ | ✓ | ✗ |
I/O brokers
Section titled “I/O brokers”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
KafkaActor (kafkajs) | ✓ | ✓ | ⚠ |
MqttActor (mqtt) | ✓ | ✓ | ⚠ |
AmqpActor (amqplib) | ⚠ | ✓ | ⚠ |
NatsActor (nats) | ✓ | ✓ | ⚠ |
JetStreamActor | ✓ | ✓ | ⚠ |
RedisStreamsActor (redis) | ✓ | ✓ | ⚠ |
GrpcServerActor / GrpcClientActor | ✓ | ✓ | ⚠ |
WebSocketActor (client) | ✓ | ✓ | ✓ |
ServerWebSocketActor | ✓ (Bun.serve) | ✓ (ws) | ⚠ |
SseActor | ✓ | ✓ | ✓ |
TcpSocketActor | ✓ | ✓ | ✓ |
UdpSocketActor | ✓ | ✓ | ✓ |
| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
| Route DSL | ✓ | ✓ | ✓ |
Marshalling (entity<T>) | ✓ | ✓ | ✓ |
FastifyBackend | ✓ | ✓ | ✓ |
BunServeBackend | ✓ | N/A | N/A |
ExpressBackend | ✓ | ✓ | ⚠ |
| Middleware (response-cache, rate-limit, idempotency-key) | ✓ | ✓ | ✓ |
HttpClient (uses fetch) | ✓ | ✓ | ✓ |
HttpManagement | ✓ | ✓ | ✓ |
| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
| In-memory cache | ✓ | ✓ | ✓ |
| Memcached cache | ⚠ | ✓ | ⚠ |
| Redis cache | ✓ | ✓ | ⚠ |
Serialization
Section titled “Serialization”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
| JSON | ✓ | ✓ | ✓ |
| CBOR | ✓ | ✓ | ✓ |
| Custom serializers | ✓ | ✓ | ✓ |
Observability
Section titled “Observability”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
| Core metrics | ✓ | ✓ | ✓ |
| Prometheus exporter | ✓ | ✓ | ✓ |
prom-client adapter | ✓ | ✓ | ⚠ |
| OTel metrics adapter | ✓ | ✓ | ⚠ |
RecordingTracer | ✓ | ✓ | ✓ |
| OTel tracing adapter | ✓ | ✓ | ⚠ |
| Stock metrics | ✓ | ✓ | ✓ |
| Health checks | ✓ | ✓ | ✓ |
TestKit
Section titled “TestKit”| Feature | Bun | Node 20+ | Deno |
|---|---|---|---|
TestKit.create | ✓ | ✓ | ✓ |
TestProbe | ✓ | ✓ | ✓ |
ManualScheduler | ✓ | ✓ | ✓ |
MultiNodeSpec | ✓ | ✓ | ⚠ |
ParallelMultiNodeSpec | ✓ | ✓ | ⚠ |
Cell-recommended targets
Section titled “Cell-recommended targets”For new projects: BunFor Node-shop environments: Node 20+For Lambda / serverless: Node 20+For Deno-first organizations: Deno (with caveats)For mixed: Pick one per clusterWhere to next
Section titled “Where to next”- Runtime overview — the conceptual model.
- Bun / Node / Deno — per-runtime details.
- Installation — install steps.