Releases: nova-guild/core
Releases · nova-guild/core
v0.5.1
v0.5.0
v0.4.0
Added
- Runtime Abstraction Layer: Introduced an adapter pattern for core libraries (
fs,net,process,serde, andtask), decoupling the framework from specific runtime implementations. - Zune Runtime Support: Added full support for the Zune runtime.
Changed
- Runtime-Agnostic Utilities: Refactored internal utility functions to utilize the new abstraction layer, removing direct dependencies on
@lunebuilt-ins. - Enhanced CI Pipeline: Updated GitHub Actions to install Zune and execute the test suite across both Lune and Zune runtimes to ensure cross-runtime compatibility.
v0.3.5
v0.3.4
Added
-
Catch-All Routing (
[...slug]): Introduced Next.js-inspired terminal wildcard routes. Wildcards instantly absorb all remaining URL segments in$O(1)$ time, providing extremely fast dynamic deep-routing. -
URL-Encoded Body Parsing: The request dispatcher now supports
application/x-www-form-urlencodedpayloads out of the box, automatically parsing them into therequest.bodytable.
Changed
- Zero-Allocation Route Parsing: Completely rewrote the internal path parser. Replaced expensive regex/pattern matching (
:match,:gsub) with raw C-level byte checking (string.byte) for dynamic route registration and trailing slash removal, drastically reducing memory allocations per request. - Dynamic Parameter Memory Optimization: Replaced standard array shifting (
table.insert(list, 1, val)) with pre-allocated Luau arrays (table.create) and linear indexed assignments, massively speeding up dynamic route segment extraction. - Dispatcher Refactoring (DRY): Consolidated the internal route execution logic. Static and dynamic routes now share a unified, centralized block for
HEADmethod fallbacks, handler validation, and405 Method Not Allowedresponses.
v0.3.3
v0.3.2
v0.3.1
v0.3.0
This version removes the automatic detection of Content-Type. You must now use the specific response functions (e.g., .json(), .html()) to ensure your headers are set correctly. This change give developers explicit control over the response stream.
Added
- Explicit Response Utilities: A new suite of methods under Nova.response to handle common web formats with the correct MIME types:
.send(body, config)- Generic response handler..json(table, config)- Automatically encodes a table to JSON and setsapplication/json..html(string, config)- Setstext/htmlfor server-side rendered content..css(string, config)- Setstext/cssfor stylesheet delivery..js(string, config)- Setstext/javascriptfor client-side scripts.
Changed
- Response Handling Logic: Refactored the core engine to move away from automatic type detection. The system no longer attempts to guess the Content-Type based on the Luau type provided to the router, reducing overhead and preventing ambiguity.
Fixed
- Resolved a critical bug where the server failed to correctly receive or buffer the request body during POST and PUT operations, ensuring payload integrity for data-driven routes.
Removed
isHtmlproperty from the response configuration table has been removed. This is now handled exclusively by the .html() utility function.
Implementation Example
function Home.Get(request)
-- The new way to send a JSON response
return Nova.response.json({ msg = "Hello World" })
end