Skip to content

示例 ​

所有示例都在 examples/, 构建时做编译校验(-DQZ_BUILD_EXAMPLES=ON)。C 示例由 CMake 构建;JS 示例经 qzjs CLI 运行。每个示例目录都有 README.md,写明精确运行命令与期望输出。

示例请用 Release 构建运行。QZ_BUILD_TESTS=ON 的构建把核心链到 mock_libuv,其空闲路径阻塞在固定 1 秒轮询兜底上,而非在定时器到期时刻 唤醒——定时器因此被量化到整秒。timers 会打印出错误的耗时。 生产/Release 构建用真 libuv,不受影响。

构建 ​

bash
cmake -B build -DCMAKE_BUILD_TYPE=Release -DQZ_BUILD_EXAMPLES=ON
cmake --build build --parallel

C 示例(嵌入) ​

示例演示内容运行
hello最简嵌入:创建运行时、求值 JS、host↔JS 消息往返./build/examples/hello/qz_hello
messagesJSON 请求/响应状态机(echo/add/date)./build/examples/messages/qz_messages
workernew Worker(url) 并行执行./build/examples/worker/qz_worker

C 示例会派生 qzjs-rt(ISOLATED 进程模型);构建时自动注入运行时路径,开箱即用。

JS 示例(CLI) ​

示例演示内容运行
wasm执行 WebAssembly 模块(WebAssembly.instantiate)./build/qzjs examples/wasm/wasm.js
cryptoWebCrypto:SHA-256 + AES-GCM 加解密./build/qzjs examples/crypto/crypto.js
httpserver纯 JS serve() HTTP 服务器 + 静态文件./build/qzjs examples/httpserver/server.js
websocket经 serve() ws 路由的 WebSocket echo 服务器./build/qzjs examples/websocket/websocket.js
timerssetTimeout/setInterval + Promise.all 异步./build/qzjs examples/timers/timers.js
fsqzjs.fs 读/写/列目录/删除./build/qzjs examples/fs/fs.js
broadcastBroadcastChannel 跨实例消息./build/qzjs examples/broadcast/broadcast.js
stream-pipelineReadableStream/TransformStream 流水线./build/qzjs examples/stream-pipeline/pipeline.js
fetch-proxy出站 fetch 代理./build/qzjs examples/fetch-proxy/main.js
grpc-hellogRPC unary 服务器(-DQZ_WITH_GRPC=ON)./build/qzjs examples/grpc-hello/grpc-hello.js
worker-orchestrate编排多个 worker./build/qzjs examples/worker-orchestrate/orchestrate.js

C 扩展 ​

示例演示内容运行
extension把 C 扩展编译进 qzjs,向 JS 暴露原生全局见 extension/README.md

扩展必须编译进 qzjs 库(-DQZ_EXTRA_SOURCES + -DQZ_EXTENSIONS + -DQZ_EXTRA_HEADERS);示例文档给出了精确构建命令。

MIT 许可证