turbo-az
v1.4.1
Published
Turbo-speed Azure Functions host with a persistent Node.js worker daemon and WebAssembly engine.
Readme
⚡ Turbo-AZ
A blazing-fast, lightweight local development host for Azure Functions.
Turbo-AZ is a drop-in replacement for the official azure-functions-core-tools (func start). Built in Rust with a persistent Node.js worker daemon, it starts instantly, eliminates cold starts, and executes your JavaScript and TypeScript functions at near-zero latency.
✨ Features
- 🚀 Instant Boot: Written in native Rust, the HTTP server boots in under 10 milliseconds.
- ⚡ Zero Cold Starts: Uses a persistent Node.js daemon that keeps your modules and database connections loaded in memory across requests.
- 🛠️ Zero Configuration: No
host.jsonrequired. Just run it in your project folder and it auto-discovers your functions. - 🔒 Environment Variables: Automatically loads your secrets from
local.settings.jsonand.envfiles. - 🛡️ Method Enforcement: Strictly validates incoming HTTP methods against your function's declared routes (e.g., blocking
GETrequests toPOSTendpoints). - 💡 Native TypeScript: Executes
.tsfiles directly in memory via Node module hooks — notscbuild step required.
📦 Installation
Install Turbo-AZ globally via NPM. No Rust, no compilation, no setup required.
npm install -g turbo-azVerify the installation:
turbo-az --version🚀 Usage
Navigate to your existing Azure Functions project and simply run the CLI:
cd my-azure-functions-project
# Start the host
turbo-azTurbo-AZ will scan your src/functions directory, print the available endpoints, and start listening on http://127.0.0.1:3000.
Example Function
Turbo-AZ supports the standard Azure Functions v4 programming model:
const { app } = require('@azure/functions');
app.http('login', {
methods: ['POST'],
authLevel: 'anonymous',
handler: async (request, context) => {
const body = await request.json();
return { status: 200, jsonBody: { message: 'Success' } };
},
});⚙️ Configuration
Turbo-AZ automatically reads environment variables at startup in this priority order:
local.settings.json(Standard Azure format, variables placed inside the"Values"object).env(Standard key=value fallback)
{
"IsEncrypted": false,
"Values": {
"SqlConnectionString": "Server=localhost;Database=myDB",
"JWT_SECRET": "super-secret-key"
}
}📄 License
ISC License
