Skip to main content

Synapse Cell SDK — E2B-compatible sandboxed code execution, 200x faster, with streaming, filesystem, git, PTY, Dockerfile transpilation, and bundled Wasm runtimes.

Project description

synapserun

The E2B-compatible sandbox that runs your code on Wasm. 200× faster cold start. Canadian sovereign. Cryptographic execution receipts.

PyPI npm Python 3.9+ License: MIT GitHub stars

Install

pip install synapserun

The install bundles real CPython 3.12 and QuickJS 0.14 compiled to Wasm. Local execution works with zero configuration — no Docker, no gateway, no API key needed for the api_url="local" path.

For Node.js:

npm install @runsynapse/sdk

Quick Start — 5 seconds to first execution

from synapse.cell import Cell

cell = Cell(api_url="local")
result = cell.run("print(2 + 2)")
print(result.stdout)      # '4\n'
print(result.latency_ms)  # ~0.5ms (simple path) / ~63ms (full CPython)
cell.kill()

Full CPython — decorators, generators, async, any stdlib import

with Cell(api_url="local") as cell:
    result = cell.run("""
import hashlib, json
def sign(data: bytes) -> str:
    return hashlib.sha256(data).hexdigest()
print(json.dumps({"sig": sign(b'hello')}))
""")
    print(result.stdout)
    # {"sig": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"}

JavaScript via QuickJS-WASI

cell = Cell(api_url="local", template="javascript")
result = cell.run("console.log([1,2,3].reduce((a,b) => a+b))")
print(result.stdout)  # '6'
cell.kill()

E2B drop-in replacement

Already using E2B? Change one import:

# Before:
# from e2b_code_interpreter import Sandbox

# After:
from synapse.e2b_compat import Sandbox

sbx = Sandbox(api_url="local")
result = sbx.run_code("print('hello')")
print(result.stdout)

Every major E2B method is supported: run_code, files.read/write/list, commands.run, kill, connect, pause/resume, get_info, and more.

What's in the box

  • Real Python 3.12 (CPython-WASI) — decorators, generators, async, eval, open, arbitrary import, full stdlib
  • Real JavaScript (QuickJS-WASI) — ES2023, await, closures, typed arrays
  • Sub-millisecond .syn transpile path for simple arithmetic
  • Filesystem APIcell.files.write/read/list/exists/get_info/make_dir
  • Git namespacecell.git.clone/commit/push/pull/checkout/... (21 methods)
  • PTY terminalcell.pty.create(on_data=...) (needs pip install websocket-client)
  • Dockerfile transpilersynapse template build -f Dockerfile
  • Framework integrations (soft imports — install frameworks separately):
    • LangChain: from synapse.langchain_tool import SynapseCellExecuteTool
    • CrewAI: from synapse.crewai_tool import SynapseCellCrewTool
    • AutoGen: from synapse.autogen_tool import SynapseCellExecutor
    • LlamaIndex: from synapse.llamaindex_tool import SynapseCellTool
    • OpenAI Agents SDK: from synapse.openai_agents_tool import synapse_cell_execute
  • Async SDKfrom synapse.async_cell import AsyncCell

Performance (measured 2026-04-15 vs live E2B)

Metric Cell E2B Delta
Simple eval (.syn transpile) 0.44 ms 91 ms 205× faster
Warm Python (CPython-WASI) 63 ms ~500 ms faster
JavaScript execution 1.2 ms
Memory per sandbox ~1 MB ~133 MB 133× density
Execution receipts ✅ SHA-256
Jurisdiction 🇨🇦 / 🇪🇺 🇺🇸

Reproduce: python3 cell/benchmarks/e2b_apples_to_apples.py --runs 100

Deployment modes

Mode How When
Local (zero-config) Cell(api_url="local") Dev, CI, small workloads, bundled into your app
Self-hosted gateway Run the Rust gateway via Docker or native binary Production, custom hardware, fleet management

Dockerfile → Wasm template (the E2B replacement bridge)

synapse template build -f Dockerfile --install-packages

Handles 80% of AI-agent Dockerfiles:

  • FROM python:* / node:* → runtime selection
  • RUN pip install / npm install → package bundles
  • COPY, WORKDIR, ENV, USER, CMD, ENTRYPOINT → all mapped
  • RUN apt-get install git → warning + "Use cell.git.*"
  • Custom base images → clear error + migration hint

Examples: dockerfile_examples/

CLI

synapse auth --api-key cell_sk_...
synapse sandbox create --template python3 --persistent
synapse sandbox run <id> "print(42)"
synapse template build -f Dockerfile
synapse template list

Framework integrations

Tool classes are bundled in the wheel; frameworks are opt-in extras:

pip install synapserun[langchain]   # pulls langchain-core + pydantic
pip install synapserun[crewai]      # pulls crewai + pydantic
pip install synapserun[all]         # everything

Correctness guardrails

The SDK auto-selects between:

  1. Fast path (.syn transpile, sub-ms) — simple arithmetic, basic control flow
  2. Full path (real CPython-WASI, ~63ms) — anything with import of non-trivial modules, bytes literals, sys.exit, f-strings with format specs, string multiplication, etc.

You never have to pick. The fast path has strict correctness gates; anything it can't faithfully execute falls through to real CPython automatically.

Links

License

Apache 2.0 core + AGPL v3 Pro/Hub tiers. Small teams self-host for free forever. See LICENSE.


Built by Freshfield AI, Canada 🇨🇦 — Wasm-native, sovereign, open.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synapserun-0.5.0.tar.gz (16.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synapserun-0.5.0-py3-none-any.whl (16.1 MB view details)

Uploaded Python 3

File details

Details for the file synapserun-0.5.0.tar.gz.

File metadata

  • Download URL: synapserun-0.5.0.tar.gz
  • Upload date:
  • Size: 16.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for synapserun-0.5.0.tar.gz
Algorithm Hash digest
SHA256 31d439a07f4935d1fb72302fedcdbb8571ebc64c6220e2f43af098a788080760
MD5 017b8d38d13daa60fe2b88380e59d90b
BLAKE2b-256 266e149e4d022e43799afef89f1acdbf16847e4380b0832ca26c4b9b9b1f6065

See more details on using hashes here.

File details

Details for the file synapserun-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: synapserun-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for synapserun-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 938d10e5ffd9e8857260b329e665f18ffb403f6726fa737e0006ebf112ac68ae
MD5 7a4651e7d3d248584dfe5c9aebe301f8
BLAKE2b-256 bbad3fdf7980298158eb400acd7e8229163ab59cdcb307a828cc55efba2b29e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page