Forest Logo
search
package_2

kernel

By @nazumah

Roblox

Mirrored

Kernel

Wally License Luau

Kernel is a high-level, service-oriented framework for Luau on Roblox. Built as the ultimate abstraction layer over NetFlow, it provides a professional, scalable, and 100% type-safe architecture for institutional-grade game development.


The Kernel Difference

  • Professional IntelliSense: Kernel solves the "type-loss" problem common in other frameworks (like Knit). By using explicit interface casting in the entry point and generic-aware retrieval methods, Kernel ensures your IDE always knows exactly what your code does.
  • Zero-Overhead Core: All networking is handled by NetFlow's binary-buffered serialization. No table-wrapping or variadic overhead.
  • Declarative Networking: Define your service's network interface directly alongside its logic. Kernel handles the lower-level NetFlow namespacing and packet definitions automatically.
  • Micro-Service Architecture: Decouple your game into singletons (Services on the server, Controllers on the client) with strict lifecycle hooks (KernelInit, KernelStart).

Installation

Wally

Update your wally.toml:

[dependencies]
Kernel = "nazumah/kernel@1.8.8"
NetFlow = "nazumah/netflow@1.7.5"
Async = "nazumah/async@1.0.4"
Signal = "nazumah/signal@1.0.4"

Quick Start

1. Define a Typed Service

local Kernel = require(path.to.Kernel)

-- Define the interface for IntelliSense
export type PointsService = {
    PointsUpdated: Kernel.Signal<number>,
    GetPoints: (self: PointsService, player: Player) -> number
}

local PointsService = Kernel.CreateService({
    Name = "PointsService",
    Client = {
        PointsUpdated = Kernel.Signal.new()
    }
})

function PointsService.Client:GetPoints(player: Player)
    return 100 -- Server logic
end

return PointsService :: PointsService

2. Type-Safe Retrieval (Client)

local PointsController = Kernel.CreateController({ Name = "PointsController" })

function PointsController:KernelInit()
    -- Use generics for perfect IntelliSense
    self.PointsService = Kernel.GetService<PointsService>("PointsService")
end

function PointsController:KernelStart()
    self.PointsService.PointsUpdated:Connect(function(points)
        print("Score:", points)
    end)
end

Documentation

  • Why Use Kernel?
  • API Reference

License

Licensed under the MIT License.

Package Details

Install command (Click to copy)


Version

1.8.8

License

MIT

check_circle

Safe for commercial use

infoLicense identified from the packaged LICENSE file; the manifest declared none.

Automated license review — not legal advice.