{"id":37663286,"url":"https://github.com/ezet-galaxy/titanpl","last_synced_at":"2026-02-14T09:09:39.296Z","repository":{"id":327786245,"uuid":"1110791378","full_name":"ezet-galaxy/titanpl","owner":"ezet-galaxy","description":"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.","archived":false,"fork":false,"pushed_at":"2026-02-13T14:19:08.000Z","size":7023,"stargazers_count":50,"open_issues_count":11,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-13T22:46:40.135Z","etag":null,"topics":["javascript","rust","titanpl","titanpl-cli","titanpl-ext","titanpl-sdk"],"latest_commit_sha":null,"homepage":"https://titan-docs-ez.vercel.app","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezet-galaxy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-05T18:15:28.000Z","updated_at":"2026-02-13T14:19:19.000Z","dependencies_parsed_at":"2026-02-13T16:04:25.089Z","dependency_job_id":null,"html_url":"https://github.com/ezet-galaxy/titanpl","commit_stats":null,"previous_names":["ezet-galaxy/-ezetgalaxy-titan","ezet-galaxy/titanpl"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/ezet-galaxy/titanpl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezet-galaxy%2Ftitanpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezet-galaxy%2Ftitanpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezet-galaxy%2Ftitanpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezet-galaxy%2Ftitanpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezet-galaxy","download_url":"https://codeload.github.com/ezet-galaxy/titanpl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezet-galaxy%2Ftitanpl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29441259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T07:24:13.446Z","status":"ssl_error","status_checked_at":"2026-02-14T07:23:58.969Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","rust","titanpl","titanpl-cli","titanpl-ext","titanpl-sdk"],"created_at":"2026-01-16T11:53:29.677Z","updated_at":"2026-02-14T09:09:39.278Z","avatar_url":"https://github.com/ezet-galaxy.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n```\n████████╗██╗████████╗ █████╗ ███╗   ██╗   ██████╗  ██████╗ ██████╗  ██████╗\n╚══██╔══╝██║╚══██╔══╝██╔══██╗████╗  ██║   ╚════██╗██╔═████╗╚════██╗██╔════╝\n   ██║   ██║   ██║   ███████║██╔██╗ ██║    █████╔╝██║██╔██║ █████╔╝███████╗\n   ██║   ██║   ██║   ██╔══██║██║╚██╗██║   ██╔═══╝ ████╔╝██║██╔═══╝ ██═══██║\n   ██║   ██║   ██║   ██║  ██║██║ ╚████║   ███████╗╚██████╔╝███████╗███████║\n   ╚═╝   ╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚══════╝ ╚═════╝ ╚══════╝╚══════╝\n```\n\n# Notice\n\n💙 **Enjoy development mode `titan dev`**\n💟 **Titan Planet docs:** https://titan-docs-ez.vercel.app/docs\n🚀 **CLI: `titan` is now the canonical command. `tit` remains supported as an alias.**\n🛡️ **Strict Mode:** Titan now enforces zero type errors before running.\n✅ **For text response from a action file use t.response.text(\"Hii TitanPl\")\n\n---\n\n# TITAN PLANET 🚀\n\n[![npm version](https://img.shields.io/npm/v/@ezetgalaxy/titan.svg?style=flat-square)](https://www.npmjs.com/package/@ezetgalaxy/titan)\n\n\n**TypeScript Precision. JavaScript Simplicity. Native Rust Power. Zero Configuration.**\n\nTitan Planet is a **JavaScript/TypeScript-first Backend Framework** that compiles your application into a single, high-performance native binary. It embeds a V8 JavaScript runtime directly into a specialized Rust + Axum server.\n\n**Start with pure TypeScript/JavaScript.**\n**Need raw power? Add Rust actions seamlessly.**\nTitan handles the compilation, bundling, and routing automatically for both.\n\nTitan = **TS/JS productivity × Rust performance × Zero DevOps**\n\n---\n\n# 🌌 Why Titan?\n\n| Feature                              | Titan | Express/Nest | FastAPI | Bun       |\n| ------------------------------------ | ----- | ------------ | ------- | --------- |\n| Native binary output                 | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n| Hybrid Rust + JS/TS Actions          | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n| Strict TypeScript Enforcement        | ✅ Yes | ❌ Setup Req. | ❌ No    | ❌ Partial |\n| Zero-config Docker deploy            | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n| Action-based architecture            | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n| Hot reload dev server                | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n| Modular, Isolated Templates          | ✅ Yes | ❌ No         | ❌ No    | ❌ No      |\n\n---\n\n# 🚀 Quick Start\n\n### 1. Prerequisites\n* **Rust** (latest stable): [Install Rust](https://rust-lang.org/tools/install/)\n* **Node.js** (v18+): Required for CLI and JS tooling.\n\n### 2. Install CLI\n```bash\nnpm install -g @ezetgalaxy/titan\n```\n\n### 3. Initialize \u0026 Run\nTitan guides you through selecting the perfect architecture for your needs.\n\n```bash\ntitan init my-app\n```\n\n**Select your language:**\n1.  `JavaScript` (Fast, lightweight)\n2.  `TypeScript` (Strict, typed)\n\n**Select your architecture:**\n1.  `Standard` (Pure JS/TS)\n2.  `Rust + JS/TS (Hybrid)` (High-performance native actions)\n\nThis creates one of four isolated environments:\n*   **Standard JS:** Lightweight server, zero Rust overhead.\n*   **Standard TS:** Strict server, zero Rust overhead.\n*   **Hybrid JS:** Full Rust integration + JS flexibility.\n*   **Hybrid TS:** Full Rust integration + TS strictness.\n\nInside your project:\n```bash\ncd my-app\ntitan dev\n```\n\nYou'll see the Titan Dev Server spin up:\n```\n  Titan Planet   v26.9.1   [ Dev Mode ]\n\n  Type:        Rust + TS Actions\n  Hot Reload:  Enabled\n  Strict Mode: Active 🛡️\n\n  • Preparing runtime... Done\n  • A new orbit is ready for your app in 0.9s\n  • Your app is now orbiting Titan Planet\n```\n\n---\n\n# ⚡ Hybrid Action System\n\nTitan is unique because it allows you to write endpoints in **JavaScript, TypeScript, and Rust** within the same project.\n\n| Feature | Status | Notes |\n| :--- | :--- | :--- |\n| **Standard JavaScript** | ✅ Stable | Production Ready |\n| **Standard TypeScript** | 🚧 Beta | **Ready for Dev**, Production Under Testing |\n| **Rust + JS (Hybrid)** | 🧪 Experimental | **Dev Only**, Production Under Testing |\n| **Rust + TS (Hybrid)** | 🧪 Experimental | **Dev Only**, Production Under Testing |\n\n### 🔵 TypeScript Actions (`app/actions/hello.ts`)\nFully typed, strict, and auto-compiled.\n\n```typescript\nimport { defineAction } from \"../../titan/titan\";\n\ninterface HelloResponse {\n    message: string;\n    user_name: string;\n}\n\n// \"defineAction\" provides automatic type inference for \"req\"\nexport const hello = defineAction((req): HelloResponse =\u003e {\n    t.log(\"Handling request with strict types...\");\n\n    return { \n        message: \"Hello from TypeScript!\",\n        user_name: req.body.name || \"Guest\"\n    };\n});\n```\n\n### 🟡 JavaScript Actions (`app/actions/hello.js`)\nPerfect for business logic, rapid prototyping, and IO-bound tasks.\n```javascript\nexport const hello = defineAction((req) =\u003e {\n    t.log(\"Handling user request...\");\n    return { \n        message: \"Hello from JavaScript!\",\n        user_id: req.params.id \n    };\n});\n```\n\n### 🔴 Rust Actions (Beta)\nPerfect for heavy computation, encryption, image processing, or low-level system access.\n\u003e **Note:** The Native Rust Action API is currently in **Beta**.\n```rust\nuse axum::{response::{IntoResponse, Json}, http::Request, body::Body};\nuse serde_json::json;\n\npub async fn run(req: Request\u003cBody\u003e) -\u003e impl IntoResponse {\n    let result = heavy_computation();\n    t.log(\"Processed 1M records in Rust\");\n    Json(json!({ \"result\": result }))\n}\n```\n\n**Titan automatically detects, compiles, and routes all types.**\n* `.ts` files are type-checked and compiled with esbuild.\n* `.js` files are bundled with esbuild.\n* `.rs` files are compiled into the native binary.\n* All share the same `routes.json` configuration.\n\n---\n\n# 🛡️ Strict Type Safety \u0026 Error Logs\n\nTitan prioritizes code quality by enforcing **Strict TypeScript** logic during development. \n\nIf `titan dev` detects a type error, the server **will not run**. This ensures you never ship or test broken code.\n\n### Sample Error Output\nWhen a type error occurs, Titan pauses execution and provides a clear, actionable log:\n\n```text\n[Titan] ❌ TypeScript Error:\napp/actions/payment.ts(12,5): error TS2322: Type 'string' is not assignable to type 'number'.\n\n    10 |    const amount: number = req.body.amount;\n    11 |    \n  \u003e 12 |    processPayment( \"100\" ); // Error here\n       |    ^^^^^^^^^^^^^^^^^^^^^^^\n\n[Titan] 🛑 Server paused due to type errors. Fix them to resume.\n```\n\nOnce fixed, the server automatically resumes.\n\n---\n\n# ✨ Core Capabilities\n\n### 🔌 Unified Runtime API (`t`)\nAll actions (JS/TS/Rust) have access to the powerful `t` namespace:\n\n* `t.fetch(url, options)` — High-performance HTTP client\n* `t.log(msg)` — Sandboxed, structured logging\n* `t.jwt.sign / verify` — Fast JWT operations\n* `t.password.hash / verify` — Secure password handling\n* `t.db` — Database access\n---\n\n### 🧩 Extensions System\nExtend the runtime with custom Rust engines using **Titan Extensions**.\n* `titan create ext \u003cname\u003e`: Scaffold a new extension.\n* `titan run ext`: Test your extension in a lightweight harness.\n\n---\n\n# 📦 Deployment\n\nTitan compiles your entire app—JS/TS code, Rust code, and server logic—into a **single executable**.\n\n* **Tiny Docker Images**: Alpine-based, ~20MB compressed.\n* **Instant Startup**: No node_modules overhead.\n* **Secure**: No access to system APIs from JS unless explicitly bridged.\n\n---\n\n\n**To know more read docs 💟 **Titan Planet docs:** https://titan-docs-ez.vercel.app/docs**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezet-galaxy%2Ftitanpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezet-galaxy%2Ftitanpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezet-galaxy%2Ftitanpl/lists"}