Authorization and Authentication are a big deal for web development. Take OAuth, the most widely used protocol of authentication between services on the web. Such an simple idea, but with so many varying implementations (twitter, facebook, whatever…) and tricky parts in the details – it’s almost impossible to get right without a library. But authentication doesn’t end there, how do people authorize against your server? How do you authenticate? These are crates helping you to address authentication problems.
The Webbrowser is the bastion, the holy grail of web development and one of the biggest projects in the Rust ecosystem focusses exactly on that. If Rust achieves to run a browser engine, be used to write server code while also being used as the frontend-development language within the browser, then it will truly be the language of the web like no other.
Without a proper HTTP Client there isn’t much web - even for the backend, scraping or API-Services on the web HTTP is the protocol of choice. Thus a stable, strong HTTP-Client stack is very important to any web-ecosystem.
Basic pages and compiling source content into full websites to be served are one of the fundamental features of the web as we have it today. On this page we cover helpers and projects that aim to lower the workfload on getting this specifc aspect done.
One of the first things almost anyone does to improve performance (specifically bandwidth) is to turn on compression. Luckily compression is well supported in rust.
Cryptography is a corner stone of a trusted web. Without it many services could not be offered reliably. While rust has a strong RNG, the main suite in use isn’t pure rust but the (in)famous openssl.
Proper Database support is crucial for modern web development. This page gives an overview of the various drivers, ORMs, integrations and tools.
How are on quick and easy deploying of our applications into existing server infrastructures? Well, stuff is looking quite good actually.
What would the web be without Email? One of the easiest authentication and notification systems. Yet, rust support isn’t particular great, yet. There is stuff, but there is also room to improve it.
Encoding is one of those things you don’t really want to bother about, but just rely on a well tested library for – there are just too many edge and quirky cases. Luckily, as a system language, this is one of the things rust shines at – and offers a set of nice packages already.
When building a modern web-application you don’t want to bother on how to parse the http-header or where the route is supposed to be dispatched to. Frameworks offer exactly those features and make it quick’n’easy to build your specific app on the web-stack.
Internationalisation is still very immature and unstable, with most libraries being only weeks old and not used in production yet. Furthermore, other than the usual gettext approach, the Rust ecosystem doesn’t offer much yet. ICU is completely non-existent.
Logging is part of the rust ecosystem for a long time and with log and env_logger you have some great defaults.
Serializers allow you to easily transfer states and reliably get it back – important not only when working with JSON but also backbone of many types of worker-queue systems. Rust has good support for serializers, yet not many are web-tested…
The modern web development stack doesn’t only need a web-server but is often built on a range of external services to provide specific features, from worker queues over search and pubsub, rust support for these is seriously lacking at the moment. Be sure you are able to build the connection yourself if needed.
As terrible as SOAP might be as a protocol, it is undenyably popular amongst older systems and needed for legacy support. At this moment, rust doesn’t offer any help with SOAP development.
A strong lower web-stack is important not only to build strong web frameworks on top, but also to allow performance critical systems to reach deeper to squeeze out extra juice. Rust has a good support on HTTP servers, even an HTTP2 implementation, websockets and other protocols.
To spread the information syndication has often be announced dead just to still stick around. Parse and generating good RSS isn’t especially hard, but also something you don’t necessarily want to have to do yourself. There are some libraries and packages to help you with that.
No Web-App is complete if it doesn’t spit out HTML at least some of the time. Managing that, and making sure it renders performant and can be maintained is what templating libraries focus on. There aren’t many yet, but it’s better than none!
This collects a range of packages which are commonly used and needed in web development, like URL or HTTP-Body-parsers.
With many Web-Apps we want to reach farther than our locally hosted services and reach APIs hosted by other platforms and services outside our network. While there are a number of them, many are just first version and others (like Facebook) are still absent, leaving a lot of room for improvement.