{"id":"nazumah/kernel","name":"kernel","scope":"nazumah","platform":"roblox","description":"Mirrored from the Wally registry.","version":"1.8.8","latest":"1.8.8","versions":["0.1.0","0.1.1","0.1.2","0.1.3","1.0.0","1.0.1","1.1.0","1.2.0","1.3.0","1.4.0","1.5.0","1.6.0","1.7.0","1.8.0","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.8"],"license":"MIT","licenseRating":"safe","licenseCaveats":["License identified from the packaged LICENSE file; the manifest declared none."],"licenseVerified":true,"dependencies":{"nazumah/async":{"version":"^1.0.4","alias":"Async"},"nazumah/netflow":{"version":"^1.7.5","alias":"NetFlow"},"nazumah/signal":{"version":"^1.0.4","alias":"Signal"}},"integrity":"70cb69d0082a24550eb4a3cfc20619e45d54c6f8b911f15ffe19532b2a4c5c70","likes":0,"downloads":0,"install":"forest install nazumah/kernel","url":"https://forest.dev/p/roblox/nazumah/kernel","files":"https://api.forest.dev/ai/package/roblox/nazumah/kernel/files","readme":"# Kernel\n\n[![Wally](https://img.shields.io/badge/Wally-1.8.8-blue.svg)](https://wally.run/package/nazumah/kernel)\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Luau](https://img.shields.io/badge/Luau-Strict-blueviolet.svg)](https://luau-lang.org/)\n\nKernel is a high-level, service-oriented framework for Luau on Roblox. Built as the ultimate abstraction layer over [NetFlow](https://github.com/Nazumah/roblox-luau-netflow), it provides a professional, scalable, and **100% type-safe** architecture for institutional-grade game development.\n\n---\n\n## The Kernel Difference\n\n- **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.\n- **Zero-Overhead Core**: All networking is handled by NetFlow's binary-buffered serialization. No table-wrapping or variadic overhead.\n- **Declarative Networking**: Define your service's network interface directly alongside its logic. Kernel handles the lower-level NetFlow namespacing and packet definitions automatically.\n- **Micro-Service Architecture**: Decouple your game into singletons (Services on the server, Controllers on the client) with strict lifecycle hooks (`KernelInit`, `KernelStart`).\n\n---\n\n## Installation\n\n### Wally\nUpdate your `wally.toml`:\n\n```toml\n[dependencies]\nKernel = \"nazumah/kernel@1.8.8\"\nNetFlow = \"nazumah/netflow@1.7.5\"\nAsync = \"nazumah/async@1.0.4\"\nSignal = \"nazumah/signal@1.0.4\"\n```\n\n---\n\n## Quick Start\n\n### 1. Define a Typed Service\n```lua\nlocal Kernel = require(path.to.Kernel)\n\n-- Define the interface for IntelliSense\nexport type PointsService = {\n    PointsUpdated: Kernel.Signal<number>,\n    GetPoints: (self: PointsService, player: Player) -> number\n}\n\nlocal PointsService = Kernel.CreateService({\n    Name = \"PointsService\",\n    Client = {\n        PointsUpdated = Kernel.Signal.new()\n    }\n})\n\nfunction PointsService.Client:GetPoints(player: Player)\n    return 100 -- Server logic\nend\n\nreturn PointsService :: PointsService\n```\n\n### 2. Type-Safe Retrieval (Client)\n```lua\nlocal PointsController = Kernel.CreateController({ Name = \"PointsController\" })\n\nfunction PointsController:KernelInit()\n    -- Use generics for perfect IntelliSense\n    self.PointsService = Kernel.GetService<PointsService>(\"PointsService\")\nend\n\nfunction PointsController:KernelStart()\n    self.PointsService.PointsUpdated:Connect(function(points)\n        print(\"Score:\", points)\n    end)\nend\n```\n\n---\n\n## Documentation\n\n- [Why Use Kernel?](docs/WhyUseKernel.md)\n- [API Reference](docs/API.md)\n\n---\n\n## License\nLicensed under the [MIT](LICENSE) License.\n","readmeTruncated":false}