zenoengine

module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2026 License: Apache-2.0

README

⚡ ZenoEngine

Go Version Latest Release License

The Developer Experience of Laravel. The Speed and Simplicity of Go.

ZenoEngine is a lightning-fast, production-ready execution engine for the ZenoLang programming language. It compiles your entire full-stack application into a single, high-performance binary.

📖 Read Documentation  •  🚀 Quick Start  •  🤝 Contribute


🔥 Why ZenoEngine?

Traditional fullstack development requires configuring complex web servers, process managers, and language runtimes (Nginx, PHP-FPM, Node/PM2, Docker). ZenoEngine changes everything.

  • 🚀 Compiled Go Speed: Built on top of Go (go 1.26+), your routes, ORM database queries, and template rendering execute in microseconds with minimal RAM footprint.
  • 🎨 Laravel-Parity DX: Write clean, expressive logic using ZenoLang alongside a 1-to-1 port of the Blade templating engine (@if, @foreach, @extends, $loop, components, and more).
  • 📦 Single-Binary Deployment: Compile your entire application—including routes, views, database migrations, and assets—into a single executable binary. Just copy-paste and run.
  • 🛡️ Secure by Default: Built-in read-only database query guards (SELECT/WITH/SHOW/EXPLAIN), security obfuscation middleware (middleware.spoof), CSRF protection, mass-assignment guards, and automatic JWT handling.
  • 🔄 Hot Reload: Modify your templates and logic files and see changes instantly without restarting the server or breaking development flow.

💻 Code at a Glance

1. The Logic (src/main.zl)

Write clean, readable, brace-based backend logic for your routing and database queries:

// Define a route and execute safe database query
http.get: '/users' {
    db.select: 'SELECT id, name, email FROM users WHERE is_active = 1' {
        as: $users
    }
    
    return: view: 'users.index' { users: $users }
}
2. The View (views/users/index.blade.zl)

Utilize a familiar, powerful Laravel-like template engine directly in your web views:

@extends('layouts.app')

@section('content')
    <div class="container">
        <h1>Active Users</h1>
        <ul class="user-list">
            @foreach($users as $user)
                <li>
                    <strong>{{ $user.name }}</strong> ({{ $user.email }})
                    @if($loop.first) <span class="badge">Newest</span> @endif
                </li>
            @endforeach
        </ul>
    </div>
@endsection

✨ Features Out of the Box

  • Eloquent-inspired ORM & Schema Builder: Relationships (hasOne, hasMany, belongsTo, belongsToMany), eager loading, and mass-assignment protection.
  • Safe Standard Database Slots (db.select & db.execute): Strict read-only query enforcement on db.select, variable prefix trimming (as: $var), and non-empty query validations.
  • Security Obfuscation (middleware.spoof): Masks server headers (X-Powered-By: PHP/8.3.0) and injects dummy session cookies to trick automated vulnerability scanners.
  • API Protection (middleware.api_key): Built-in verification for X-API-KEY headers, query parameters, or Bearer tokens.
  • Image Upload & Conversion (upload.webp): Auto-converts uploaded images to WebP format and cleans up previous file uploads.
  • HTML Sanitizer (sanitize): XSS prevention for user-generated HTML content.
  • Captcha Engine (captcha.id & captcha.verify): Native Captcha generator and verification slots.
  • Inertia.js & SPA Support: Complete official Inertia.js protocol implementation (inertia.render, inertia.share, inertia.location) and SPA static hosting fallback.
  • Automated API Documentation: Automatically generates interactive Swagger/OpenAPI documentation from route definitions.

🚀 Quick Start

1. Download the CLI

Download the latest executable binary from the Releases page for your operating system.

On Linux/macOS:

chmod +x zeno
mv zeno /usr/local/bin/
2. Run the Server

Start your application by passing the main ZenoLang entry point file directly to the binary:

zeno src/main.zl

Your app is now running at http://localhost:3000 (or the port specified in your .env file)!


📚 Ecosystem & Libraries


🔧 Modular Embedding in Your Go App (Advanced)

If you are building a custom hybrid application in Go, you can selectively import only the modules you need using the Functional Options pattern:

import (
    "github.com/nextcore/zeno-go/pkg/engine"
    "github.com/nextcore/zenoengine/pkg/app"
    "github.com/go-chi/chi/v5"
)

func main() {
    eng := engine.NewEngine()
    r := chi.NewRouter()
    
    // Option A: Register all slots
    app.RegisterAllSlots(eng, r, dbMgr, queue, nil)

    // Option B: Selective / Modular registration
    app.RegisterSlots(eng,
        app.WithCore(),
        app.WithWeb(r),
        app.WithDB(dbMgr),
    )
}

📜 License

ZenoEngine is open-source software licensed under the Apache 2.0 License.

Directories

Path Synopsis
backup
tools/docgen command
go_server command
cmd
zeno command
internal
app
cli
pkg
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL