A simple Rust fortune
-like webapp with Rocket
This simple webapp reads quotes from a SQLite database and picks a random one to return
with each request. It uses templates for HTML responses and serde
for JSON.
It provides a proof of concept for my use of Rocket.
What this application demonstrates:
- Database with
rusqlite
- Templates with
tera
- JSON API with
serde
and therocket_contrib
JSON support - Integrated command line management
- Form data entry
- Responsive, mobile-first design
- Custom error pages
- Rust 2018 compliance
- Rocket tests
I like Rocket, as a concept. It allows me to use Rust, a language that tends to produce code which is both fast and correct, as a backend for services which typically need to be both fast and correct - web services.
Rocket also works with paradigms I'm familiar with: pluggable datastore and template modules connected by route functions, like Flask.
To run the application, simply clone the repo and, assuming that you have
a nightly Rust toolchain installed, as well as libsqlite3-dev
, run
cargo run
in the root directory - you'll get a webserver running!
You'll need to add quotes using either cargo run add dev.db <quote> <author> [source]
or the JSON API.
This software is subject to the terms of the GNU Affero General Public License v3.0.