Florian Briand
7ac8215382
- Création de la crates/fsv-sys - Ajout des headers de la FSV 1.40.14.13 dans crates/fsv-sys/vendor - Génération des bindings depuis ces headers avec bindgen - Implémentation d'une structure de loading de la librairie au runtime - Implémentation d'une macro permettant de générer facilement la couche d'accès aux fonctions de la librairie |
||
---|---|---|
.gitea | ||
crates | ||
docs | ||
frontend | ||
scripts | ||
.env.linux.example | ||
.env.win.example | ||
.gitignore | ||
.ignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
Krys4lide
Logiciel de Pharmacie libre et open-source.
Modules applicatifs
crates
: Dossier racine des modules Rustcrates/backend
: Serveur backend propulsé par Axum, exposant une API RESTcrates/desktop
: Client desktop propulsé par Tauri, exposant lefrontend
crates/sesam-vitale
: Bibliothèque de gestion des services SESAM-Vitale (Lecture des cartes CPS et Vitale, téléservices ...)crates/utils
: Bibliothèque de fonctions utilitairescrates/fsv-sys
: Bindings Rust pour les librairies dynamiques FSV (SESAM-Vitale)
frontend
: Interface web du logiciel, propulsée par Nuxt.js
Installation
Fichiers de configuration
Certaines librairies nécessitent de définir certaines paramètres de configuration pour fonctionner correctement, en particulier le moteur SESAM-Vitale.
Ces paramètres sont définis dans un fichier de configuration .env
situé dans un des dossiers suivant (par ordre de priorité) :
- dans le dossier courant (
./.env
) - dans le dossier du manifeste (par exemple
crates/sesam-vitale/.env
) - dans le dossier de configuration standard de l'OS (par exemple, sur linux,
~/.config/krys4lide/.env
- plus d'info)
Des exemples de fichiers de configuration sont disponibles à la racine du projet : .env.linux.example
et .env.win.example
.
Development
Pré-requis
Frontend (Nuxt + Typescript)
Le frontend est propulsé par Nuxt.js, un framework TypeScript pour Vue.js. Pour le développement, il est nécessaire d'installer les dépendances suivantes :
- Bun, un gestionnaire de paquets, équivalent à
npm
en plus performant
Tauri CLI
TODO: Tauri CLI, réellement nécessaire ?
La CLI Tauri est nécessaire au lancement du client desktop
. Elle peut être installée via Cargo :
cargo install tauri-cli --version "^2.0.0-rc"
FSV-sys
La crate fsv-sys
nécessite la présence des librairies fournies par le package FSV et la CryptolibCPS. Les instructions d'installation sont disponibles dans le README de la crate fsv-sys
.
Backend Hot-reload
Voir le README de la crate backend
pour les prérequis de développement du serveur backend.
Lancement
Pour lancer l'application en mode développement, il est nécessaire d'exécuter plusieurs composants simultanément :
# Lancement du serveur backend
systemfd --no-pid -s http::3030 -- cargo watch -x 'run --bin backend'
# Lancement de l'interface utilisateur (frontend ou desktop)
# - frontend (serveur web, accessible via navigateur)
bun run --cwd frontend/ dev
# - desktop (client desktop, basé sur Tauri)
cargo tauri dev
Build
Pour packager le client desktop
, il est nécessaire de faire appel à la CLI Tauri, qui se charge de gérer le build du frontend
et son intégration au bundle :
cargo tauri build