Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
1b16e92
Add cross-platform support for macOS and Linux
Oct 28, 2025
9d8a0a1
Fix critical TODOs: safety, correctness, and configuration improvements
Oct 28, 2025
9f1418b
Add performance optimizations and ownership clarity improvements
Oct 28, 2025
c07412a
Comprehensive TODO cleanup: Performance, memory safety, code quality,…
Oct 28, 2025
4c0b68c
Refactor: Extract and untangle code from server.zig to improve modula…
Oct 28, 2025
c1f0538
Refactor: Consolidate HTTP response formatting to eliminate duplication
Oct 28, 2025
0c7070b
Fix: Resolve memory safety error in error_renderer_test
Oct 28, 2025
d86a82e
Feat: Add comprehensive DX improvement helpers to CtxBase
Oct 28, 2025
b3cf137
Refactor: Update blog_crud.zig to use improved DX helpers
Oct 28, 2025
2994afe
Feat: Fix critical OTEL span bugs and standardize naming conventions
Oct 28, 2025
fd3a33e
Feat: Replace hardcoded JSON with struct serialization in blog API
Oct 28, 2025
8694c8b
Feat: Add saga pattern stub and enhance OTEL with domain attributes
Oct 28, 2025
f2a2edf
Docs: Add comprehensive OpenTelemetry conventions documentation
Oct 28, 2025
6a4b5cb
Add CPU budget system and network effects (TCP/gRPC/WebSocket)
Oct 28, 2025
00bbefe
Add StepExecutionContext for async step pipeline execution
Oct 28, 2025
b2186bd
Add StepQueue for async step execution (Phase 1 foundation)
Oct 28, 2025
f540c05
Wire step queue into TaskSystem with worker pool (Phase 1)
Oct 28, 2025
1d95e48
Complete Phase 1: Full queue-based async execution with dispatcher
Oct 28, 2025
34ca900
test: Add comprehensive tests for async queue-based execution (Phase 1)
Oct 28, 2025
fdad204
feat: Implement truly async, non-blocking effect execution (Phase 2)
Oct 28, 2025
fa8cda3
feat: Add DB effect handlers for async execution
Oct 28, 2025
d2d9ec8
feat: Implement SLO-aware and fair priority queue for step execution
Oct 28, 2025
2ecbfb1
feat: Add HTTP effect handlers for async execution
Oct 28, 2025
e3048b2
fix: Update code for Zig 0.15.1 compatibility and add allocator support
Oct 28, 2025
5e35aa3
feat: Implement automatic feature registry with token-based effect ro…
Oct 28, 2025
3825fef
Refactor: Remove explicit continuations, use pipeline approach
Oct 28, 2025
ff60f61
feat: Add hot reload infrastructure for DLL-based plugins
Oct 28, 2025
b71b5c9
feat: Add Zingest HTTP ingest server with IPC forwarding
Oct 28, 2025
01bfde4
feat: Add Zupervisor with hot reload and IPC server
Oct 28, 2025
215e6dc
feat: Refactor blog feature as external DLL
Oct 28, 2025
85f0fe4
feat: Refactor todos feature as external DLL
Oct 28, 2025
53aece9
multiprocess enablement pt 1
Oct 29, 2025
24d5d0f
feat: add pre-built binary support and simplify build config
Oct 30, 2025
21269c4
feat: add multi-process architecture with hot-reloadable DLLs
Oct 30, 2025
052f114
feat: implement DLL route registration and request handling
Oct 30, 2025
1548cba
feat: add RFC compliance todos and response builder for DLL handlers
Oct 30, 2025
3efedf2
feat: add slot-effect pipeline architecture documentation
Oct 30, 2025
0e5a66c
feat: Add slot-effect pipeline architecture to Zupervisor
Oct 30, 2025
efe171b
feat: Implement Windows DLL loading for full cross-platform support
Oct 30, 2025
c09789b
feat: add SQLite integration and database effect executors
Oct 30, 2025
fc37989
feat: update blog navigation and homepage structure
Oct 30, 2025
045794d
feat: enhance file watcher and hot reload system
Oct 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .blog_dll_gen.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Auto-generated DLL wrapper for blog feature
const feature = @import("features/blog/main.zig");

export fn featureInit(server: *anyopaque) callconv(.c) i32 {
return feature.featureInit(server);
}

export fn featureShutdown() callconv(.c) void {
return feature.featureShutdown();
}

export fn featureVersion() callconv(.c) [*:0]const u8 {
return feature.featureVersion();
}

export fn featureHealthCheck() callconv(.c) bool {
return feature.featureHealthCheck();
}

export fn featureMetadata() callconv(.c) [*:0]const u8 {
return feature.featureMetadata();
}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ yarn-error.log*
.env.production.local
config.local.*

# Database Files
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3

# Temporary Files
*.tmp
*.temp
Expand Down
22 changes: 22 additions & 0 deletions .todos.disabled_dll_gen.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Auto-generated DLL wrapper for todos.disabled feature
const feature = @import("features/todos.disabled/main.zig");

export fn featureInit(server: *anyopaque) callconv(.c) i32 {
return feature.featureInit(server);
}

export fn featureShutdown() callconv(.c) void {
return feature.featureShutdown();
}

export fn featureVersion() callconv(.c) [*:0]const u8 {
return feature.featureVersion();
}

export fn featureHealthCheck() callconv(.c) bool {
return feature.featureHealthCheck();
}

export fn featureMetadata() callconv(.c) [*:0]const u8 {
return feature.featureMetadata();
}
22 changes: 22 additions & 0 deletions .todos_dll_gen.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Auto-generated DLL wrapper for todos feature
const feature = @import("features/todos/main.zig");

export fn featureInit(server: *anyopaque) callconv(.c) i32 {
return feature.featureInit(server);
}

export fn featureShutdown() callconv(.c) void {
return feature.featureShutdown();
}

export fn featureVersion() callconv(.c) [*:0]const u8 {
return feature.featureVersion();
}

export fn featureHealthCheck() callconv(.c) bool {
return feature.featureHealthCheck();
}

export fn featureMetadata() callconv(.c) [*:0]const u8 {
return feature.featureMetadata();
}
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,26 @@ graph LR
zig build

# 2) Run the blog CRUD example (includes slot usage, effects, continuations)
zig build run-blog-crud
zig build run_blog

# 3) Hit an endpoint and inspect traces (uses built-in telemetry printer)
curl -i http://127.0.0.1:8080/posts
curl -i http://127.0.0.1:8080/blog/posts
```

**Alternative: Run Pre-built Binaries**

If you have pre-built binaries available (or if the build fails), you can run them directly:

```bash
# Run the blog CRUD example standalone
./zig-out/bin/blog_crud_example

# Or run the multi-process architecture:
./zig-out/bin/zingest # HTTP ingest server (port 8080)
./zig-out/bin/zupervisor # Supervisor with hot reload

# Then test with:
curl -i http://127.0.0.1:8080/blog/posts
```

Need more detail? See `QUICKSTART.md` for environment setup, and `examples/blog_crud.zig` for a production-style flow using steps, slots, and effects.
Expand Down
Empty file added app.db
Empty file.
Loading
Loading