Skip to content

Releases: nova-guild/core

v0.5.1

19 Apr 10:14
Immutable release. Only release title and notes can be modified.
9406efd

Choose a tag to compare

Added

  • GitHub Actions for Release Note: Implemented GitHub Actions workflow for release automation.

Changed

  • Update CHANGELOG and README for Lute support

v0.5.0

18 Apr 16:25
Immutable release. Only release title and notes can be modified.
a3cabda

Choose a tag to compare

Nova now runs on Lune, Zune and Lute through a runtime adapter layer.

Added

  • Lute Runtime Support: Added fs, net, process, serde, and task adapters, bringing full Lute runtime support to Nova.

v0.4.0

14 Apr 07:44
03d5915

Choose a tag to compare

Added

  • Runtime Abstraction Layer: Introduced an adapter pattern for core libraries (fs, net, process, serde, and task), 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 @lune built-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

29 Mar 15:18
ae75c66

Choose a tag to compare

Changed

  • Refactor middleware and remove unnecessary optimizations

Full Changelog: v0.3.4...v0.3.5

v0.3.4

25 Mar 05:03
64a08f9

Choose a tag to compare

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-urlencoded payloads out of the box, automatically parsing them into the request.body table.

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 HEAD method fallbacks, handler validation, and 405 Method Not Allowed responses.

v0.3.3

18 Mar 07:33
7fc5981

Choose a tag to compare

Fixed

Fixed types

v0.3.2

15 Mar 14:53
dc1ce54

Choose a tag to compare

Fixed

Fixed typos on routing.luau

v0.3.1

13 Mar 16:49

Choose a tag to compare

Fixed

Resolved a critical EOF while parsing crash that occurred during GET requests or requests with empty bodies.

v0.3.0

13 Mar 16:45

Choose a tag to compare

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 sets application/json.
    • .html(string, config) - Sets text/html for server-side rendered content.
    • .css(string, config) - Sets text/css for stylesheet delivery.
    • .js(string, config) - Sets text/javascript for 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

  • isHtml property 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

v0.2.1

09 Mar 00:06

Choose a tag to compare

Fixed

  • Fixed Nova types not appearing on the latest version