Bygg Varsto med oss
Varsto är ett totalsträckskrypterat verktyg för filsynkronisering och säkerhetskopiering till lagring du redan har: S3-buckets, NAS-utdelningar, rclone-fjärrmål, gamla diskar och dina egna enheter. Kärnan är skriven i Rust, källkoden är offentlig på GitHub och lagringsformatet är specificerat i skrift. Det är en tidig alfa, och därför är det nu man kan påverka den mest.
Källkoden på GitHub Ärenden Regler för bidrag (en)
Det här skulle du arbeta med
En Rust-kärna med skriven specifikation
varsto-core innehåller motorn:
- innehållsdefinierad uppdelning i block och XChaCha20-Poly1305-kryptering;
- en signerad liggare med hybridsignaturer Ed25519 + ML-DSA-65;
- placering och lagringsregler;
- blockutbyte mellan enheter med NAT-traversering;
- lagringsbakändar för kataloger, S3 och rclone.
Varje objekt i lagringen beskrivs i specifikationen av lagringsformatet (en).
Ett program, många skal
varsto-cli är kommandoraden, bakgrundstjänsten, ikonen i aktivitetsfältet och ett lokalt webbgränssnitt (ren HTML, CSS och JavaScript). Tunna inbyggda skal omsluter det via varsto-ffi: Swift för macOS och iOS, Kotlin för Android.
Tester som kör hela nätverk
Utöver enhets- och integrationstester finns ett labb med virtuella maskiner. De spelar bärbara datorer, stationära datorer och servrar bakom hemroutrar, symmetrisk NAT och ett publikt internet. Labbet har en S3-server, och lagringsavbrott, krascher och klockavvikelser kan slås på vid behov. Se Testing (en).
Här behövs hjälp
- Säkerhetsgranskning av nyckelhierarkin, hotmodellen och formatspecifikationen. Fynd hanteras enligt säkerhetspolicyn.
- Plattformar: aktivitetsfältet och Utforskaren-integrationen i Windows, iOS-appen på riktiga enheter och Androids bakgrundsbeteende på telefoner från olika tillverkare.
- Nätverk: blockutbyte mellan enheter och NAT-traversering i andra nät än underhållarens egna, till exempel bakom operatörs-NAT, i nät med enbart IPv6 och bakom företagsbrandväggar.
- Lagring: tester mot fler S3-kompatibla leverantörer och rclone-bakändar och deras egenheter (delvisa läsningar, klockavvikelse, konsekvens i listningar).
- Paketering: Flatpak, Homebrew, AUR, winget och andra pakethanterare.
- Översättningar: gränssnittet och den här webbplatsen finns på engelska, finska och svenska. Fler språk och granskning av modersmålstalare är välkomna. Ordlistorna är JSON-filer i
crates/varsto-cli/ui/i18n/. - Dokumentation och felrapporter från verkliga uppsättningar: forumet (en) och ärendehanteringen.
Kom igång
git clone https://github.com/janttsu/varsto
cd varsto
cargo build --release
cargo test --workspace
En stabil Rust-verktygskedja (1.85 eller nyare) räcker för kärnan och kommandoraden. Snabbstarten (en) skapar ett valv i en lokal katalog på en minut, så du kan prova ändringar utan något molnkonto. Före en pull request ska cargo fmt --all --check, cargo clippy --workspace --all-targets och testerna gå igenom, och nytt beteende behöver tester. Öppna gärna ett ärende före stora ändringar.
Licens
Varstos källkod är tillgänglig under PolyForm Shield License 1.0.0. Du får läsa, använda, ändra och dela koden för alla ändamål utom att erbjuda en produkt som konkurrerar med Varsto. Licensen är inte en OSI-godkänd öppen källkodslicens. Genom att bidra godkänner du att ditt bidrag distribueras under den licensen. Detaljerna finns i reglerna för bidrag (en). Allt i repot skrivs på engelska.