Titanpl
Titan Planet is a JavaScript-first backend framework that embeds JS actions into a Rust + Axum server and ships as a single native binary. Routes are compiled to static metadata; only actions run in the embedded JS runtime. No Node.js. No event loop in production.
Install / Use
/learn @t8nlab/TitanplREADME
Titan Planet is a JavaScript/TypeScript-first Backend Framework that compiles your application into a single, high-performance native binary. It embeds it's own Gravity (V8) JavaScript runtime directly into a specialized Rust + Axum server.
TypeScript Precision. JavaScript Simplicity. Native Rust Power. Zero Configuration.
<p> <img src="https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white" /> <img src="https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black" /> <img src="https://img.shields.io/badge/Rust-DEA584?style=for-the-badge&logo=rust&logoColor=black" /> </p>Why Titan?
Titan Planet compiles your JavaScript or TypeScript application into a single native Rust binary.
It embeds a V8 runtime inside a Rust + Axum server — giving you:
- ⚡ Native-level performance
- 📦 Single binary deployment
- 🧠 Strict TypeScript enforcement
- 🛡 Zero type errors before runtime
- 🚀 No DevOps configuration required
Start with pure TypeScript. Drop into Rust when you need extreme performance. Titan handles the integration automatically.
<p> <a href="https://titan-docs-ez.vercel.app/docs" target="_blank"> <img src="https://i.ibb.co/VpBsTg6m/tpl-Logo.png" width="28" style="vertical-align:middle;" /> <strong style="vertical-align:middle;"> Documentation</strong> </p> <p> <a href="https://titan-docs-ez.vercel.app/docs/runtime-architecture" target="_blank"> <strong style="vertical-align:middle;">Gravity Runtime</strong> </a> </p> <p> <a href="https://titan-docs-ez.vercel.app/docs/14-drift" target="_blank"> <strong style="vertical-align:middle;">Drift</strong> </a> </p>🚀 Quick Start
1. Prerequisites
- Rust (latest stable): Install Rust [Optional]
- Node.js (v18+): Required for CLI and JS tooling.
2. Install CLI
The titanpl CLI is used to create and manage all your new projects and everything related to Titan.
npm install -g @titanpl/cli@latest
3. Initialize & Run
Titan guides you through selecting the perfect architecture for your needs.
titan init my-app
Select your language:
JavaScript(Fast, lightweight)TypeScript(Strict, typed)
Select your architecture:
Standard(Pure JS/TS)Rust + JS/TS (Hybrid)(High-performance native actions)
Inside your project:
cd my-app
npm run dev
You'll see the Titan Dev Server spin up:
⏣ Titan Planet v1.0.0 [ Dev Mode ]
Type: TS Actions
Hot Reload: Enabled
Env: Loaded
🚀 Starting Titan Engine...
[Titan] 1 reply route(s) pre-computed
Titan server running at: http://localhost:5100 (Threads: 32, Stack: 8MB, Dev Mode)
⚡ Hybrid Action System
Titan is unique because it allows you to write endpoints in JavaScript, TypeScript, and Rust within the same project.
| Feature | Status | Notes | | :--- | :--- | :--- | | Standard JavaScript | ✅ Stable | Production Ready | | Standard TypeScript | ✅ Stable | Production Ready | | Rust + JS (Hybrid) | 🧪 Experimental | Dev Only, Production Under Testing | | Rust + TS (Hybrid) | 🧪 Experimental | Dev Only, Production Under Testing |
🔵 TypeScript Actions (app/actions/hello.ts)
Fully typed, strict, and auto-compiled.
import { defineAction } from "@titanpl/native";
interface HelloResponse {
message: string;
user_name: string;
}
// "defineAction" provides automatic type inference for "req"
export const hello = defineAction((req): HelloResponse => {
t.log("Handling request with strict types...");
return {
message: "Hello from TypeScript!",
user_name: req.body.name || "Guest"
};
});
🟡 JavaScript Actions (app/actions/hello.js)
Perfect for business logic, rapid prototyping, and IO-bound tasks.
export const hello = defineAction((req) => {
t.log("Handling user request...");
return {
message: "Hello from JavaScript!",
user_id: req.params.id
};
});
🔴 Rust Actions (Beta)
Perfect for heavy computation, encryption, image processing, or low-level system access.
Note: The Native Rust Action API is currently in Beta.
use axum::{response::{IntoResponse, Json}, http::Request, body::Body};
use serde_json::json;
pub async fn run(req: Request<Body>) -> impl IntoResponse {
let result = heavy_computation();
t.log("Processed 1M records in Rust");
Json(json!({ "result": result }))
}
Titan automatically detects, compiles, and routes all types.
.tsfiles are type-checked and compiled with esbuild..jsfiles are bundled with esbuild..rsfiles are compiled into the native binary.- All share the same
routes.jsonconfiguration.
🛡️ Strict Type Safety & Error Logs
Titan prioritizes code quality by enforcing Strict TypeScript logic during development.
If titan dev detects a type error, the server will not run. This ensures you never ship or test broken code.
Sample Error Output
When a type error occurs, Titan pauses execution and provides a clear, actionable log:
[Titan] ❌ TypeScript Error:
app/actions/payment.ts(12,5): error TS2322: Type 'string' is not assignable to type 'number'.
10 | const amount: number = req.body.amount;
11 |
> 12 | processPayment( "100" ); // Error here
| ^^^^^^^^^^^^^^^^^^^^^^^
[Titan] 🛑 Server paused due to type errors. Fix them to resume.
Once fixed, the server automatically resumes.
✨ Core Capabilities
🔌 Unified Runtime API (t)
All actions (JS/TS/Rust) have access to the powerful t namespace:
t.fetch(url, options)— High-performance HTTP clientt.log(msg)— Sandboxed, structured loggingt.jwt.sign / verify— Fast JWT operationst.password.hash / verify— Secure password handlingt.db— Database access
🧩 Extensions System
Extend the runtime with custom Rust engines using Titan Extensions.
titan create ext <name>: Scaffold a new extension.titan run ext: Test your extension in a lightweight harness.
📦 Building & Deployment
Titan offers a unified build system that packages your JS/TS code, assets, and the native engine into a single, self-contained build/ directory.
1. Production Build
Run this command from your project root:
titan build --release
This will:
- Bundle your actions into optimized
.jsbundlefiles. - Extract all required Titan extensions and native libraries to
.ext/. - Copy your
public/,static/, and other configured assets. - Generate a
titan-serverexecutable in thebuild/folder.
2. Run the Build
cd build
./titan-server
Your application is now running as a standalone native server.
🐳 Docker Deployment
The titan build --release command is optimized for Docker. Your Dockerfile can be as simple as:
FROM node:20-slim AS builder
WORKDIR /app
COPY . .
RUN npm install --include=optional
RUN npx titan build --release
FROM ubuntu:24.04
WORKDIR /app
COPY --from=builder /app/build .
CMD ["./titan-server", "run", "dist"]
This produces a tiny, high-performance production image with zero node_modules.
🛠 Configuration (tanfig.json)
You can customize the build process in your tanfig.json:
{
"build": {
"purpose": "deploy",
"files": ["public", "db", "secrets"]
}
}
purpose: Usedeployto skipnode_modulesjunctions for the smallest possible footprint.files: List any extra folders you want included in thebuild/output.
To know more read docs 💟 Titan Planet docs: https://titanpl.vercel.app/docs
Related Skills
himalaya
343.3kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
343.3kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
