Skip to content

Latest commit

 

History

History
85 lines (65 loc) · 4.99 KB

index.md

File metadata and controls

85 lines (65 loc) · 4.99 KB
layout
main

Are we web yet?

Yes! And its freaking fast!

Can I replace my Rails/Django/Flask already?

Yup! Rust has mature and production ready frameworks in Actix Web and Rocket, and newer ones like Warp and Tide. These provide everything you'd expect from a web framework, from routing and middleware, to templating, and JSON/form handling. There are crates for everything, and more! For databases, there's:

There are many integrations to third-party services, such as:

And of course, there is plenty of support for basic web needs, like logging {% include level.html level=2 %}, authorization {% include level.html level=4 %}, templating {% include level.html level=4 %}, and email {% include level.html level=4 %}.

While development might not be as smooth as something like Rails or Django, the Rust web development ecosystem and community is engaged and very helpful. A lot of work has been put into the web in the past few years, and we're getting there!

WebAssembly???

Rust can even run on the browser, by compiling to WebAssembly {% include level.html level=2 %}. This means that you can take advantage of the amazing Rust ecosystem on the browser! Rust and WebAssembly integrate with existing Javascript tooling. It supports NPM, Webpack, and ECMAScript modules! There are some awesome Rust and WebAssembly projects out there. For example, Yew and Seed let you create front-end web apps with Rust in a way that feels almost like React.js.

For more information about Rust and WebAssembly, check out the Rust and WebAssembly Book.

Getting started

After you've set up your Rust and worked yourself through "The Book", you might want to check any of these resources:

Either way you choose, if you find yourself stuck and looking for help, you can check out the official Rust forum, the rust tag on stackoverflow, or the Rust Discord server where you are welcome to post your questions and will find excellent help.

In detail

Learn more about the state of web development in Rust by topic:

    {% for page in site.pages %} {% if page.layout == 'topic' %}
  • {{page.title}} {% include level.html level=page.level%}
  • {% endif %} {% endfor %}
  • {% include level.html level=0 %}: everything is awesome: stable, tested and mature
  • {% include level.html level=1 %}: stuff's pretty great
  • {% include level.html level=2 %}: getting there, stable but still maturing
  • {% include level.html level=3 %}: not yet stable, but progressing
  • {% include level.html level=4 %}: unstable/incomplete, needs work
  • {% include level.html level=5 %}: barely there, needs serious work
  • {% include level.html level=6 %}: basically nonexistent