53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
# Fej
|
|
|
|
Fej is a RESTful API that does lots of different things. It started as an
|
|
experiment to learn Rust, but has grown into a full-on passion project.
|
|
|
|
## Project Structure
|
|
|
|
The `src` folder contains subfolders for the various binaries and the main
|
|
library, called `fej`. The biggest binary is called `server`, which is the
|
|
binary that actually runs the Rocket.rs web server. All the others are utility
|
|
programs, mostly consisting of scrapers for various services.
|
|
|
|
Version 1.1 also introduces the use of a database, namely
|
|
[PostgreSQL 13](https://www.postgresql.org/).
|
|
|
|
## Roadmap
|
|
|
|
See [roadmap.md](roadmap.md).
|
|
|
|
## Development
|
|
|
|
To make development more consistent (and keep my computer a bit cleaner) I've
|
|
decided to run the entire toolchain using Docker, with Alpine Linux base
|
|
images. This also allows me to make really small final images. Technically,
|
|
Docker is the only dependency you need to contribute to this project
|
|
(not accounting for language servers etc.).
|
|
|
|
A [Bash script](fejctl) is provided to speed up development on the various
|
|
binaries. It aids in starting up the containers, choosing which binary to run
|
|
etc. A quick rundown of its most important features:
|
|
|
|
```bash
|
|
# By default, it compiles the 'server' binary (but doesn't run it)
|
|
./fejctl
|
|
|
|
# The first argument is the action you wish to perform, the second on which
|
|
# binary (not all commands need a binary as input, so they just ignore it)
|
|
# For example, this will run the binary called server
|
|
./fejctl r server
|
|
|
|
# This runs the tests (all commands also have their full name if you want)
|
|
./fejctl t
|
|
./fejctl test
|
|
|
|
# These attach to the two containers
|
|
./fejctl sh # Opens a new root shell inside the 'fej' container
|
|
./fejctl psql # Open a new psql shell in the fej database
|
|
```
|
|
|
|
## Docker images
|
|
|
|
The images are available [here](https://hub.docker.com/r/chewingbever/fej).
|