

- #RUST SERVER REQUIREMENTS INSTALL#
- #RUST SERVER REQUIREMENTS FULL#
- #RUST SERVER REQUIREMENTS SOFTWARE#
This lets devserver cut corners to make the experience of local development simpler. Many development servers require configuring a certificate for HTTPS support, which can be a pain if all you want to do is locally develop for web APIs that require HTTPS (as WebXR does).ĭevserver is very much not an acceptable production server. Eventually I just made the flag on by default because I was using it every time I ran devserver. I could never remember (even though it's my own code!) if the flag was "-reload" or "-refresh" so devserver accepts both so I can never make that error again. So with the combination of the Notify crate and a MacGyver-ed WebSocket implementation automatic page reloading works with only a small hit to devserver's build times. The code is appended in a tag to the end of the document, and even though that's not the correct spot for a tag the browsers handle it totally fine without error! Hooray for lenient browsers!

Minimalist HTTPĭevserver contains a tiny HTTP implementation that isn't feature rich, but in practice covers most use cases.Ī small function reads the HTTP header into a byte array: pub fn read_header(stream: &mut T) -> Vec )
#RUST SERVER REQUIREMENTS FULL#
The Rust ecosystem is full of many excellent crates, but most web related crates are tailored towards the more complex use case of production web servers and as such take a while to build.ĭevserver implements a tiny version of HTTP and WebSockets to accomplish just enough to cover its use cases. devserver only has direct dependencies on the following 4 crates:
#RUST SERVER REQUIREMENTS INSTALL#
In order to keep install times low I was very careful choosing crates. 25 seconds is still too long for my tastes, but it's fine for now. Other similar Rust development servers takes 3 minutes to install. Perhaps it'd be possible to distribute a prebuilt binary, but I didn't want to go that route. Tools installed with cargo install build the Rust code, and Rust unfortunately has a reputation for slow compile times.

I did not want the installation of devserver to interrupt someone's workflow.
#RUST SERVER REQUIREMENTS SOFTWARE#
It's a luxurious desire, but it's a rare feeling to use software that takes up little space and installs quickly. I love tools that install almost instantly. Easy and Fast to Installīy hosting devserver on crates.io installation becomes as easy as: In this post I'll describe the process of building devserver in pursuit of the above goals. So I made a tiny development-only server called devserver.ĭevserver is a great tool for local development, but to be completely clear up-front no effort has been made to make it secure for production purposes. Surprisingly it's difficult to find an easily installed webserver that fits the bill!
