Skip to content

Commit ffc6bbc

Browse files
committed
feat: Add Tier 3-4 ZRTL plugins with async support
Tier 3 Plugins: - zrtl_crypto: Hashing (SHA256/512, MD5), Base64, Hex, UUID v4/v7, cryptographically secure random using getrandom crate - zrtl_http: Full HTTP client with request builder API, async support (get_async, post_async, request_send_async) - zrtl_compress: Gzip/Zlib/Deflate compression using byte arrays Tier 4 Plugins: - zrtl_sql: SQLite database with handle-based API using rusqlite - zrtl_websocket: WebSocket client with async support using tungstenite Async Infrastructure: - All I/O plugins now support ZrtlPromise-based async operations - HTTP: http_get_async, http_post_async, http_request_send_async - WebSocket: ws_connect_async, ws_recv_async, ws_send_async - Network: net_tcp_connect_async, net_tcp_accept_async, net_tcp_read_async - Thread-based futures with proper state machine cleanup - Type-tagged promise states for correct memory deallocation Improvements: - zrtl_math: RNG now seeded with OS entropy via getrandom - zrtl_crypto: Uses getrandom for cryptographically secure random - All plugins have proper memory management and error handling 100 tests passing across 16 plugins.
1 parent f64ba62 commit ffc6bbc

22 files changed

Lines changed: 4047 additions & 492 deletions

File tree

.DS_Store

0 Bytes
Binary file not shown.

plugins/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ members = [
1212
"zrtl_json",
1313
"zrtl_regex",
1414
"zrtl_process",
15+
"zrtl_crypto",
16+
"zrtl_http",
17+
"zrtl_compress",
18+
"zrtl_sql",
19+
"zrtl_websocket",
1520
]
1621

1722
[workspace.dependencies]

plugins/zrtl_compress/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "zrtl_compress"
3+
version = "0.1.0"
4+
edition = "2021"
5+
description = "ZRTL Compress plugin - gzip, zlib, and deflate compression"
6+
license = "Apache-2.0"
7+
8+
[lib]
9+
crate-type = ["cdylib", "staticlib", "rlib"]
10+
11+
[dependencies]
12+
zrtl = { path = "../../sdk/zrtl" }
13+
flate2 = "1.0"

0 commit comments

Comments
 (0)