Skip to content

node:readline (+ cluster, http2, diagnostics_channel) — remaining core modules #31

Closed

Description

@hassidan

Summary

node:readline and node:readline/promises are not implemented (no match in preludes/node_builtins.rs at a0c723e). The remaining unimplemented core modules are http2, cluster, inspector, v8, wasi, diagnostics_channel.

Why it matters

readline is the standard way to (a) read stdin line-by-line in CLIs and (b) stream large files with for await (const line of rl). Interactive prompts (inquirer, prompts, enquirer), REPL-style tools, and log processors all depend on it. With process.stdin and node:stream now present in 0.10.5, this is a small, high-leverage addition.

Proposal

Priority order:

  1. readline — createInterface({ input, output, terminal }), question(), on('line'|'close'), async iterator, readline/promises. Pure-JS on top of existing node:stream + node:tty.
  2. cluster — can be a thin facade over worker_threads / child_process.fork once async fork exists; isPrimary, fork(), workers, on('exit').
  3. http2 — larger; at minimum http2.connect client for gRPC-style consumers, server later.
  4. diagnostics_channel — trivial pub/sub, used by undici, fastify, OpenTelemetry instrumentation.
  5. inspector, v8, wasi — document as intentionally unsupported in a compatibility matrix rather than leaving them to Cannot find module.

Activity

  1. siktec-lab commented on Nov 9, 2026

    @siktec-lab
    Collaborator

    Addressed in #41 (�0.10.6).

    ode:readline (createInterface, async iterator) and
    ode:readline/promises are now implemented in the lazy registry.

    • Added lightweight compatibility shims for
      ode:v8,
      ode:inspector,
      ode:cluster,
      ode:http2 (including constants.HTTP_STATUS_*), and
      ode:wasi so packages probing for them import cleanly without affecting tenant isolation or cold-start time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions