Budu teď pracovat na jednom menším projektu v Rustu na práci s konfiguračními soubory.
Chtěl bych mít bedýnku (knihovnu,
pův. angl. crate) která by byla použitelná i jinými projekty.
Poté bych tam chtěl mít CLI část, která by šla používat např. skripty nebo na úpravu těch souborů z shellu.
Zatím vidím dvě možnosti jak ten projekt dělit:
1. A là Popsicle
https://github.com/pop-os/popsicle nebo
https://github.com/pop-os/upgradePopsicle:
Mají knihovnu v kořenu a gtk, cli frontendy v jednotlivých složkách
Používají Make
2. A là Fractal
https://gitlab.gnome.org/GNOME/fractalJe tam komunikační backend a gtk frontend
Je to oddělené a Cargo.toml je jen workspace
Používá to Meson (nebudu používat, jen na ilustraci)
Takže cílová struktura:
1 (Popsicle):
[REPO ROOT]
src/lib.rs...
Cargo.toml (ta "bedýnka" té knihovny)
cli/
Cargo.toml (toho frontendu)
src/main.rs (cli)
Správa pomocí Makefile?
2 (a la fractal):
[REPO ROOT]
cli/
src/main.rs
Cargo.toml
lib/
src/lib.rs
Cargo.toml
Cargo.toml (jen workspace)
Co by z toho bylo ideální?