Skip to content

Suggestion: Look into porting to Rust and using Tokio #205

Closed
@brucod

Description

@brucod

Alex Crichton, from the Rust Core team, gave a great presentation on Concurrency in Rust with Async I/O using Tokio at code::dive 2017. As soon as I watched your Deno talk, I thought about his. It is long, but I highly recommend watching it.

From his talk: Using a simple hello world benchmark, they achieved almost 2mil req/sec - nearly 250k more than the next best implementation and 500k more than Go's fasthttp. Out of the box, Tokio supports 'TCP, UDP, Unix sockets, Named pipes, processes, signals, http, http2, web sockets, ...'

Some observations (Some may be wrong and definitely missing some 😃):

  • Mio crate handles all the OS async abstractions for you for each major platform bundled into Tokio. No re-inventing the wheel.
  • They don't use callbacks like Node but futures and task-scheduling.
  • Actual threadsafe concurrent/multi-threaded async operations and servers. See Rayon as well
  • Async/await Rust syntax that might map well to V8/JS's async/await implementation.
  • Rust is already poised for WebAssembly. Writing Deno in Rust, developers won't have to know Go as well.
  • Rust is young but growing - voted most loved language for third year in a row Stack Overflow's yearly survey
  • Tokio's thoughtful design appears to lend to extensible use cases and crates.
  • Tokio is written and supported by members of the Rust Core team.
  • No garbage collection

Thanks for the cool, new project and your time

Edit: Forgot to include no GC

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions