Skip to content

Repository files navigation

⚡ 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, 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 protection against common security risks, including CSRF protection, mass-assignment guards, and automatic cryptographically secure JWT configuration.
  • 🔄 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 query database
http.get: '/users' {
    $users: db.query: 'users' {
        select: 'id, name, email'
        where: 'is_active = ?' { val: true }
        limit: 10
    }
    
    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: Relationships (hasOne, hasMany, belongsTo, belongsToMany), eager loading (resolving N+1 issues in exactly 2 queries), and mass-assignment protection.
  • Robust Routing: Clean URL routing, route grouping, and middleware support out-of-the-box.
  • Integrated Mail & Storage: Configurable SMTP/mock mailers and standard file storage slots (put, delete, exists).
  • Automated API Documentation: Automatically generate interactive Swagger/OpenAPI documentation from route definitions and comments.

🚀 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


🔧 Embedding ZenoEngine in Your Go App (Advanced)

If you are building a custom hybrid application in Go (e.g., custom streaming server or background workers) and want to utilize ZenoEngine slots and interpreter natively, you can import and register all default ZenoEngine slots using the public wrapper package:

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

func main() {
    eng := engine.NewEngine()
    
    // Register all default ZenoEngine slots (ORM, Mail, Auth, Session, etc.)
    app.RegisterAllSlots(eng, r, dbMgr, queue, nil)
}

📜 License

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

About

ZenoEngine adalah aplikasi native dengan runtime berperforma tinggi yang dirancang untuk membangun aplikasi web tanpa recompile via script .zl (Zenolang), dengan arsitektur modular dan DB agnostik (MySQL/Postgres/SQLite/MSSQL), sistem templating Zeno Blade, dan bisa diextend via plugin.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages