| Crates.io | coa-website |
| lib.rs | coa-website |
| version | 1.0.0 |
| created_at | 2025-03-31 14:05:45.80475+00 |
| updated_at | 2025-04-27 22:20:29.658134+00 |
| description | COA - HTTP Server in Rust |
| homepage | |
| repository | https://gitlab.univ-lille.fr/valentin.dassonville2.etu/coa-webserver |
| max_upload_size | |
| id | 1613464 |
| size | 75,810 |
Valentin Dassonville (valentin.dassonville2.etu@univ-lille.fr)
Toutes les features requises ont été développé mais la partie "additionnel" n'a pas pu être abordé par manque de temps.
Le projet fournit une Library crate ainsi qu'une Binary crate utilisant la Library crate.
Le développement du projet a été réalisé en créant les modules un par un. Chaque module a été testé et documenté afin de sortir une release à chaque fois. Le détail et la progression des releases est disponible dans le fichier CHANGELOG.md.
La branche main est la branche principale et contient le code de la dernière release.
La seconde branche est la branche develop qui est la branche où l'on merge les features avant de créer une release sur main. Un push sur main lance un déploiement de la CI/CD qui permet de créer une release automatiquement sur Crates.io.
La documentation de la crate est généré sur Gitlab Pages ici : https://gitlabpages.univ-lille.fr/valentin.dassonville2.etu/coa-webserver/coa_website
La Library crate est séparé en plusieurs modules :
Option et Result de RustDefaultChaque module contient ses tests unitaires et des tests d'intégration sont disponible dans /tests/integration_server.rs.
Les tests peuvent être lancés en faisant cargo test.
Une Binary crate a été créée pour montrer comment utiliser la lib crate.
Il faut lancer la méthode start d'un Server dans un runtime async. Ici tokio a été utilisé.
use coa_website::server::Server;
#[tokio::main]
async fn main() -> std::io::Result<()> {
Server::with_address_and_config("127.0.0.1:8080", "config.toml").unwrap().start().await?;
Ok(())
}
Elle utilise le fichier de configuration config.toml et sert les fichiers se trouvant le dossier public.