vane 0.9.0

A flow-based reverse proxy with multi-layer routing and programmable pipelines.
const std = @import("std");

pub fn main() !void {
    // Allocate I/O buffers
    var stdin_buf: [8192]u8 = undefined;
    var stdout_buf: [1024]u8 = undefined;
    var stderr_buf: [1024]u8 = undefined;

    // Create readers/writers
    var stdin_reader = std.fs.File.stdin().readerStreaming(&stdin_buf);
    var stdout_writer = std.fs.File.stdout().writer(&stdout_buf);
    var stderr_writer = std.fs.File.stderr().writer(&stderr_buf);

    const stderr = &stderr_writer.interface;

    _ = try stderr.writeAll("⚙ Starting execution...\n");
    try stderr.flush();

    // Setup allocator
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();
    const allocator = gpa.allocator();

    // Read all stdin using streamRemaining
    var input_writer: std.Io.Writer.Allocating = .init(allocator);
    defer input_writer.deinit();

    _ = try stdin_reader.interface.streamRemaining(&input_writer.writer);
    const input_raw = try input_writer.toOwnedSlice();
    defer allocator.free(input_raw);

    if (input_raw.len == 0) {
        _ = try stderr.writeAll("✗ No input received on stdin\n");
        try stderr.flush();
        return;
    }

    var buf: [256]u8 = undefined;
    const msg = try std.fmt.bufPrint(&buf, "⚙ Received Input: {s}\n", .{input_raw});
    _ = try stderr.writeAll(msg);
    try stderr.flush();

    // Parse JSON for auth_token
    var auth_token: []const u8 = "";
    const key = "\"auth_token\":\"";
    if (std.mem.indexOf(u8, input_raw, key)) |start| {
        if (std.mem.indexOfPos(u8, input_raw, start + key.len, "\"")) |end| {
            auth_token = input_raw[start + key.len .. end];
        }
    }

    var branch: []const u8 = "";
    var store: []const u8 = "";
    if (std.mem.eql(u8, auth_token, "secret123")) {
        _ = try stderr.writeAll("✓ Auth success\n");
        try stderr.flush();
        branch = "success";
        store = "{\"user_role\":\"admin\",\"verified\":\"true\"}";
    } else {
        const err_msg = try std.fmt.bufPrint(&buf, "✗ Auth failed. Token: {s}\n", .{auth_token});
        _ = try stderr.writeAll(err_msg);
        try stderr.flush();
        branch = "failure";
        store = "{\"error_reason\":\"invalid_token\"}";
    }

    var out_buf: [512]u8 = undefined;
    const output = try std.fmt.bufPrint(&out_buf, "{{\"branch\":\"{s}\",\"store\":{s}}}\n", .{ branch, store });
    _ = try stdout_writer.interface.writeAll(output);
    try stdout_writer.interface.flush();
}