@thipages/pacpam
v0.11.0
Published
Réseau P2P avec PeerJS — machines à états, sécurité, synchronisation
Maintainers
Readme
@thipages/pacpam
Réseau P2P avec PeerJS — machines à états, sécurité, synchronisation.
Installation
npm install @thipages/pacpamUsage
P2PSync (recommandé)
Façade haut niveau avec sessions multiplexées, guard de présence et reconnexion.
import { P2PSync } from '@thipages/pacpam';
const sync = new P2PSync({ network: { debug: false } });
sync.onStateChange = (state, detail) => console.log('État:', state);
sync.onSessionCreate = (id, config) => myHandler; // guest : retourner un handler
sync.init('P01', 'mon-app-id');Sans bundler (ES modules natifs)
<script type="importmap">
{ "imports": { "@thipages/pacpam": "https://esm.sh/@thipages/[email protected]" } }
</script>
<script type="module">
import { P2PSync } from '@thipages/pacpam';
</script>Démos
Index des démos — ouvrir dans deux onglets pour tester.
- Chat — mode indépendant, fps=0 (messages à la demande)
- Pong — mode centralisé, 30fps (temps réel, hôte autoritaire)
Documentation
- Architecture
- Référence API
- Migration v0.10 → v0.11
- Migration v0.9 → v0.10
- Machines à états (visualiseur)
- Changelog
Sécurité
- Chiffrement : WebRTC chiffre nativement les données (DTLS). Les échanges entre pairs sont protégés de bout en bout.
- Authentification : Mot de passe optionnel vérifié par hash SHA-256 mutuel. Sans le bon mot de passe, la connexion est refusée. Chaque tentative nécessite un handshake WebRTC complet (plusieurs secondes), ce qui limite naturellement le brute-force. L'hôte est notifié de chaque échec via le callback
onAuthFailed(peerId). - Serveur de signalisation : Le serveur PeerJS (
0.peerjs.com) ne sert qu'au rendez-vous initial (échange SDP/ICE). Il ne voit pas les données. Ce serveur gratuit est maintenu par la communauté PeerJS, sans garantie de disponibilité. En production, préférer un serveur auto-hébergé (npx peerjs --port 9000).
License
MIT
