datastar/sdk/zig
Ben Croker 9c36bae809
1.0.0-beta.11
2025-03-29 12:15:41 -06:00
..
.github Merge Zig README 2025-02-08 17:22:27 -06:00
src 1.0.0-beta.11 2025-03-29 12:15:41 -06:00
.gitignore Zig SDK framework integration + hello-world examples (#546) 2025-01-28 12:48:06 -06:00
README.md Zig SDK match new `build.zig.zon` format (#728) 2025-03-06 17:38:14 -06:00
build.zig Zig SDK match new `build.zig.zon` format (#728) 2025-03-06 17:38:14 -06:00
build.zig.zon Zig SDK remove use of deprecated `ArrayList` (#745) 2025-03-07 08:33:34 -06:00
test_runner.zig Accomodate Zig SDK and examples to test runner changes (#601) 2025-02-05 09:39:00 -06:00

README.md

Datastar Zig SDK

The Datastar SDK in Zig, with support for http.zig and tokamak.

Installation

Install with zig fetch --save git+https://github.com/starfederation/datastar-zig and add datastar as a dependency.

const datastar = b.dependency("datastar", .{
    .target = target,
    .optimize = optimize,
    .framework = .httpz, // or .tokamak
}).module("datastar");

exe.root_module.addImport("datastar", datastar);

Usage

const datastar = @import("datastar").httpz;

// Creates a new `ServerSentEventGenerator`.
var sse = try datastar.ServerSentEventGenerator.init(res);

// Merges HTML fragments into the DOM.
try sse.mergeFragments("<div id='question'>What do you put in a toaster?</div>", .{});

// Merges signals into the signals.
try sse.mergeSignals(.{ .response = "", .answer = "bread" }, .{});

Full examples at https://github.com/starfederation/datastar/tree/main/examples/zig