What is OtherFunc?
OtherFunc is a serverless computing platform for esoteric and unusual programming languages. Write functions in Brainfuck, Forth, APL, Lisp, and BASIC, and deploy them as HTTP endpoints.
Run serverless functions in languages the cloud forgot about.
What can it do?
Just about anything (at varying levels of efficiency). OtherFunc is perfect for running small snippets of code in supported languages without needing to set up your own infrastructure. Use it for fun, learning, or even production workloads if you're feeling adventurous.
Write an AI Chatbot in BASIC or make HTTP requests in Brainfuck.
Supported Languages
Brainfuck Forth APL Lisp BASIC
Language implementation details available in the Reference section.
Feature Comparison
| Feature | Brainfuck | Forth | APL | Lisp | BASIC |
|---|---|---|---|---|---|
| Output | . (byte) |
. emit cr type |
⎕← |
display newline print |
PRINT |
| Input | , (byte) |
key |
⎕ |
— | INPUT |
| HTTP GET | memory-mapped I/O | http-get |
— | (http-get url) |
HTTPGET$(url) |
| HTTP POST | memory-mapped I/O | http-post |
— | (http-post url body) |
HTTPPOST$(url, body) |
| Secrets / Env | memory-mapped I/O | env |
— | (env "KEY") |
ENV$("KEY") |
| KV Storage | memory-mapped I/O | kv-get kv-set kv-del |
— | (kv-get key) |
KVGET$ KVSET KVDEL |
Feature parity across languages coming in future updates.
Features
- WASM Sandboxing — Every interpreter runs as compiled WebAssembly in an isolated sandbox.
- Instruction Limits — Execution is capped at 500K instructions so non-halting programs are stopped automatically and return an error.
- Simple HTTP API — Execute code ad-hoc or save functions with slugs and invoke them by name. Input via JSON body, output via JSON response.
- Function Versioning — Every update creates a new version. The last 3 versions are retained. Roll back to any retained version with a single API call.
- Public Endpoints — Publish a function and anyone can invoke it at
/fn/your-slugwithout authentication. Publishing is available on request — email [email protected]. - Persistent KV Storage — Saved functions can store and retrieve data across invocations with per-function key-value storage. Available in Forth, Lisp, and BASIC.
- API Key Auth — Manage your functions with
Authorization: Bearer <api-key>.
Limits
| Tier | Requests / Day | How to get it |
|---|---|---|
| Anonymous | 100 | No sign-up needed — call /fn/:slug |
| Free account | 1,000 | Sign in with GitHub |
| Publishing | Available on request — email [email protected] | |
Every execution is capped at 500K instructions and 100KB of source code. Non-halting programs are stopped automatically.
Check your current usage with
GET /api/usage — see the
API Reference for details.
Quick Start
Via the API
The fastest way to try OtherFunc is with curl.
You'll need an API Key for authenticated endpoints. See Reference for details on the API and language support.
# Check that the API is running
curl https://api.otherfunc.com/
# See available languages
curl https://api.otherfunc.com/api/languages
# Run some code (requires API key)
curl -X POST https://api.otherfunc.com/api/run \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"language":"forth","code":": square dup * ; 7 square .","input":""}'
Local CLI Tools
Each interpreter is also available as a standalone command-line tool. Clone the repo and build with Cargo:
# Build all interpreters git clone https://github.com/otherfunc/otherfunc-projects.git cd otherfunc-projects cargo build --release # Brainfuck cargo run --bin bf -- "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++." # Forth cargo run --bin forth -- ": fib dup 2 < if exit then dup 1 - recurse swap 2 - recurse + ; 10 fib ." # APL cargo run --bin apl -- "+/iota 100" # Lisp cargo run --bin lisp -- "(define (fact n) (if (<= n 1) 1 (* n (fact (- n 1))))) (display (fact 10))" # BASIC cargo run --bin basic -- "10 FOR I = 1 TO 5 20 PRINT I * I 30 NEXT I"
Get your API Key
Sign in with your GitHub account to get an API key instantly. If you've signed in before, you'll get the same key back.
Support
Want to support our transformative mission to bring more unusual languages to the cloud?
- Share OtherFunc with your friends!
- Provide feedback and suggestions for improvements you want to see
Questions, feedback, or just want to say hello?
- General inquiries: [email protected]
- Open source code: github.com/otherfunc