Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Arti Arti
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 237
    • Issues 237
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 14
    • Merge requests 14
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • ArtiArti
  • Issues
  • #343
Closed
Open
Issue created Feb 15, 2022 by Nick Mathewson@nickm🌻Owner

Allow a Runtime to have no raw TCP sockets (for wasm)

IIUC, in browser environments, you can't open raw TCP sockets from wasm; instead you have to use WebSockets or such.

That's not a complete showstopper: we could still use WebSockets for alternative transports, and then make those mandatory for wasm environments. But to do that, we'd need a few infrastructure changes:

  • We'd need Runtime to be able to exist without TCP support: either by being more cautious about when we require TcpProvider in other crates, or by letting the TcpProvider implementation return some kind of NotImplemented error. The first alternative has complexity drawbacks; the second has a correctness issue.
  • We'll need a websocket-only implementation of snowflake or something that can get used when we don't have raw TCP.

This ticket is probably pretty far down the road.

Edited Feb 15, 2022 by Nick Mathewson
Assignee
Assign to
Time tracking