Développeurs

Intègre Warren dans ton app

Un moteur de référence en Rust, des wrappers fins pour ton langage, et un contrat de wire verrouillé par des vecteurs de test. Le tout open source.

Un moteur, des wrappers

Le moteur Rust est l'implémentation de référence. Chaque SDK l'embarque par FFI, ou réimplémente le protocole en clean-room contre les mêmes vecteurs de test. Une seule source de vérité pour le wire, une surface d'API idiomatique par langage.

Rust

Le moteur de référence. Identité non-custodiale, tunnel QUIC, multi-hop scellé, datapath proxy sans privilèges (SOCKS5, HTTP CONNECT, DNS dans le tunnel, IPv6, port forwarding). Validé contre le réseau réel.

Dépôt : WarrenBrowse/warren-sdk-rs
Dart / Flutter

Intègre Warren dans une app Flutter, desktop et mobile. Le moteur Rust tourne in-process via flutter_rust_bridge et expose un proxy SOCKS5 local, sans privilèges. Le mode VPN système (TUN) est validé sur macOS ; les autres plateformes suivent.

Dépôt : WarrenBrowse/warren-sdk-dart
TypeScript

Réimplémentation clean-room du plan de contrôle, compatible wire : navigateur, Node, Electron. Datapath Node via napi-rs, validé contre un exit réel. Un navigateur seul se limite au plan de contrôle : QUIC brut y est hors de portée.

Dépôt : WarrenBrowse/warren-sdk-ts
Python / Kotlin

Bindings uniffi générés au-dessus du moteur Rust (crate warren-sdk-ffi), validés en CI.

Dépôt : WarrenBrowse/warren-sdk-rs

Les golden vectors, contrat de wire

Chaque format d'échange (identité, signatures, roster d'exits, scellement multi-hop) est figé dans warren-vectors : des octets de référence que chaque implémentation doit reproduire exactement. Un SDK qui dérive casse en CI.

Ce que le SDK sait faire

  • Identité non-custodiale : mnémonique BIP39, clé Ed25519 dérivée localement, adresse SS58 en wb…
  • Requêtes API signées par la clé du compte, sans token porteur, et vérification du roster d'exits signé.
  • Tunnel WarrenGuard complet : QUIC, TLS 1.3 Raw Public Keys, obfuscation par défaut.
  • Multi-hop scellé HPKE à travers un relais aveugle.
  • Datapath proxy sans privilèges : SOCKS5, HTTP CONNECT, DNS dans le tunnel, IPv6 double pile.
  • Port forwarding : demande et libération de ports publics sur un nœud de sortie.

Licences et dépôts

Les SDKs et le moteur sont publiés sous AGPL-3.0, l'app sous GPL-3.0. Les mêmes vecteurs valident n'importe quelle implémentation tierce.