Welcome to Invoke
Invoke is a modern serverless function management platform that lets you deploy and execute custom functions in a secure, isolated sandbox environment.
What is Invoke?โ
Invoke lets you write serverless functions in JavaScript, TypeScript, or C#, with access to a rich set of built-in APIs. Your functions run in sandboxed environments with:
- Multi-language support: JavaScript, TypeScript (Bun runtime), and C# (.NET 10 NativeAOT)
- Express.js-compatible APIs: Familiar
reqandresobjects (JS/TS) orInvokeRequest/InvokeResponse(C#) - Persistent Storage: Built-in key-value store with TTL support
- Realtime Support: Socket.IO-style real-time communication via
RealtimeNamespace - Package Support: npm packages (JS/TS) or NuGet packages (C#)
Quick Exampleโ
- JavaScript
- TypeScript
- C#
import crypto from 'crypto'
export default async function handler(req, res) {
const name = req.query.name || 'World'
const id = crypto.randomUUID()
await kv.set(`user:${id}`, { name, timestamp: Date.now() })
res.json({ message: `Hello, ${name}!`, id })
}
import crypto from 'crypto'
export default async function handler(req: InvokeRequest, res: InvokeResponse) {
const name = (req.query.name as string) || 'World'
const id = crypto.randomUUID()
await kv.set(`user:${id}`, { name, timestamp: Date.now() })
res.json({ message: `Hello, ${name}!`, id })
}
using Invoke;
using System.Text.Json.Nodes;
public static class Function
{
[EntryPoint]
public static async Task EntryPoint(InvokeRequest req, InvokeResponse res)
{
var name = req.Query.TryGetValue("name", out var n) ? n : "World";
var id = Guid.NewGuid().ToString();
var kv = new KeyValueStore();
await kv.Set($"user:{id}", new JsonObject { ["name"] = name, ["timestamp"] = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() });
res.Status(200).Json(new JsonObject { ["message"] = $"Hello, {name}!", ["id"] = id });
}
}
Key Featuresโ
๐ Secure Executionโ
Functions run in isolated sandbox environments with controlled access to system resources.
๐ HTTP/HTTPS Supportโ
Make external API calls using fetch, http, or https modules.
๐พ Built-in KV Storeโ
Persistent key-value storage with automatic TTL management.
๐ฆ Package Supportโ
Use npm packages (node_modules) in JavaScript/TypeScript functions, or NuGet packages (Invoke.SDK) in C# functions.
โก High Performanceโ
Efficient execution with caching and resource pooling.
๐ ๏ธ Powerful CLIโ
Manage functions, versions, environment variables, and more from the command line.
Management Optionsโ
Web Admin Panelโ
Access the full-featured web interface to manage functions, view logs, and monitor performance.
Command Line Interface (CLI)โ
Use the Invoke CLI for powerful command-line management:
# Create and deploy a function
invoke function:create --name my-api ./my-function
# Invoke a function
invoke function:invoke my-api --method POST --data '{"hello": "world"}'
# View execution logs
invoke function:logs my-api --status error --limit 10
Learn more in the CLI Documentation.
What You'll Learnโ
- Quick Start - Create your first function in 5 minutes
- Runtimes & Languages - Language and runtime overview
- CLI Reference - Command-line interface documentation
- Bun API Reference - JS/TS API documentation
- .NET API Reference - C# SDK documentation
- Guides - Step-by-step tutorials for common tasks
- Examples - Real-world function examples
Ready to Get Started?โ
Jump into the Quick Start Guide to create your first Invoke function!