Node.js backend compatibility layer for moonbitlang/async in MoonBit, with native delegation and JS FFI implementations for process, fs, http, gzip, tls, socket, raw_fd, signal, sync primitives, websocket, stdio, pipe, and sys.
Dependencies
| Dependency | Version |
|---|---|
| moonbitlang/async | 0.16.6 |
| moonbitlang/x | 0.4.40 |
| Package | Description |
|---|---|
| mizchi/x/process | Command execution (run, collect_output, collect_stdout, collect_stderr, collect_output_merged) |
| mizchi/x/fs | File system operations (read_file, write_file, exists, mkdir, readdir, remove, rmdir) |
| mizchi/x/http | HTTP client (get, post, put, get_stream, post_stream, put_stream) |
| mizchi/x/websocket | WebSocket client (connect, Conn::send_text, Conn::send_binary, Conn::recv, Conn::close) |
| mizchi/x/stdio | Standard I/O (stdin, stdout, stderr with @io.Reader/@io.Writer) |
| mizchi/x/pipe | In-memory pipes (pipe() → PipeRead/PipeWrite with @io.Reader/@io.Writer) |
| mizchi/x/sys | Environment variables and CLI args (get_env_var, get_cli_args, exit) |
| Package | native | js | wasm | wasm-gc |
|---|---|---|---|---|
| process | Yes | Yes | stub | stub |
| fs | Yes | Yes | WASI P1 | stub |
| http | Yes | Yes | stub | stub |
| websocket | Yes | Yes | stub | stub |
| stdio | Yes | Yes | stub | stub |
| pipe | Yes | Yes | stub | stub |
| sys | Yes | Yes | Yes | stub |
| Upstream test | Status | Notes |
|---|---|---|
| http request | Covered | |
| https request | Covered | |
| Other 18 tests | Skip | Internal parser/sender/proxy tests |
just # check + test
just fmt # format code
just check # type check
just test # run tests| Upstream test | Status | Notes |
|---|---|---|
| basic wait | Covered | |
| basic_ls | Covered | |
| collect_stdout | Covered | |
| collect_error | Covered | |
| collect_output | Covered | |
| collect_output_merged | Covered | |
| wait exitcode | Covered | |
| set cwd | Covered | |
| set_env | Covered | |
| set_env no inherit | Covered | |
| basic_cat | Skip | stdin pipe not yet exposed |
| wait_pid | Skip | spawn_orphan not yet exposed |
| cancel process | Skip | cancellation not yet exposed |
| cancel process hard | Skip | cancellation not yet exposed |
| cancel process timeout | Skip | cancellation not yet exposed |
| orphan process | Skip | spawn_orphan not yet exposed |
| collect_output blocked | Skip | stdin param not yet exposed |
| spawn_in_group wait | Skip | spawn not yet exposed |
| spawn_in_group cancel | Skip | spawn not yet exposed |
| Process::wait | Skip | Process type not yet exposed |
| Process::try_wait | Skip | Process type not yet exposed |
| Process:cancel | Skip | Process type not yet exposed |
| merge stdout and stderr | Skip | stdout/stderr redirect not yet exposed |
| merge multiple | Skip | spawn + pipe redirect not yet exposed |
| redirect to file | Skip | file redirect not yet exposed |
| kill children on hard cancel | Skip | requires custom test program + Windows |
| do not kill orphan children on hard cancel | Skip | requires custom test program + Windows |
| windows command line arg escape | Skip | Windows-specific |
moon test --target js src/http --filter 'bench(js): graceful close time under concurrent sse'bench(js): sse_clients=24 graceful_close_ms=1507./scripts/k6/run_http_bench.shBASE_URL=http://127.0.0.1:18080 k6 run scripts/k6/http_ping.js
BASE_URL=http://127.0.0.1:18080 BODY_SIZE=16384 k6 run scripts/k6/http_consume.js
BASE_URL=http://127.0.0.1:18080 BODY_SIZE=16384 k6 run scripts/k6/http_discard.jsNode.js backend compatibility layer for moonbitlang/async in MoonBit, with native delegation and JS FFI implementations for process, fs, http, gzip, tls, socket, raw_fd, signal, sync primitives, websocket, stdio, pipe, and sys.
Dependencies