Skip to content

Full WASM support #902

Description

@ConorOkus

Context

We want to finally make LDK Node run in WASM environments, in particular also as a Cloudflare worker.

Todo

  • Refactor ldk-node core to be fully async; blocking APIs wrapped by an API layer that holds the runtime
  • Make the runtime a trait, defaulting to tokio, with a WASM runtime as an alternative implementation
  • Audit all uses of time; route them through a trait rather than std
  • Audit all uses of tokio utilities; write context-agnostic replacements
  • Introduce structured feature gates allowing opt-in to subsets of features; decide how to handle already-shipped features that aren't WASM-compatible (e.g. electrum)
  • Make bitreq fully WASM-compatible, ship it, update downstream dependents (esplora-client, vss-client, etc.); wait for those releases before bumping in ldk-node
  • Regression-test thoroughly — tokio has many idiosyncrasies we've debugged over the years, and the WASM runtime is reported to have its own

Related

#43

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions