This is mostly because certain compiler features that make the application developer's life better are not available on stable yet. One of the downsides to this is that currently Rocket only works with the nightly compiler. Rocket is a web framework which is easy to use while maintaining flexibility, speed, and safety. Therefore, we will use a library at a higher level of abstraction which still allows us to take advantage of what Hyper offers. However, there is a bit more boilerplate than you might want to write yourself when you want to focus on building an application. It can be used to build both HTTP clients and servers. Currently most web frameworks use Hyper internally for handling the actual HTTP requests. Hyper is a low level HTTP library built on even lower level libraries for building network services. However, most of the ecosystem has coalesced around similar ideas which take advantage of Rust's particular features.īefore jumping in to building a simple web server, let's briefly discuss a few of the libraries that make up the web landscape. Much of the underlying infrastructure for building concurrent programs took until 2019 to reach a maturity sufficient to be included in the stable version of the standard library. The ecosystem around web application development in Rust is still quite nascent despite the Rust language hitting 1.0 in 2015. Primarily we are concerned here with the application layer which is comparable to where Django, Rails, and Express live in Python, Ruby, and NodeJS, respectively. There are a few different layers to the web programming stack. While it is capable of being a systems programming language, there are a plethora of language features that make it suitable for innumerable programming tasks, including building web servers.
There is obviously some truth to this, but in many ways this characterization sells Rust's potential short. The existing engine being written in C++ combined with the syntactical similarities encourages the idea the Rust was meant to be a replacement for C++. Rust has its origins at Mozilla primarily as a tool for building a new browser engine. One area where Rust stands out is in the building of web servers.