3.1 KiB
title: AnyCable created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, notifications, websockets, real-time, app-marathon-batch-rattrapage-3] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Notifications, https://anycable.io]
🔔 AnyCable
Serveur WebSocket scalable pour Ruby/Rails : drop-in replacement pour ActionCable, jusqu'à 10x plus performant. Pas une app « notification » classique mais un middleware temps réel.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | anycable.io |
| GitHub | anycable/anycable |
| License | MIT |
| Langage | Go (serveur) + Ruby (gem client) |
| Étoiles GitHub | 1.8k ⭐ |
| Catégorie | [[cat-notifications |
📝 Description
AnyCable remplace ActionCable (le serveur WebSocket de Rails) par une implémentation Go scalable. Permet de gérer des dizaines de milliers de connexions concurrentes sur un seul serveur, avec pub/sub distribué (Redis, NATS, PostgreSQL). Utilisé en production par : JetBrains, Travelport, etc.
Différence avec un serveur de notification classique : AnyCable est une librairie serveur (pas une app à installer) — vous l'intégrez dans votre app Rails. Ce n'est pas le bon choix si vous cherchez un push simple : voyez plutôt Ntfy ou Gotify.
Pour qui : équipes Rails qui veulent scaler les WebSockets sans réécrire en Go/Node.
🚀 Installation
Gemfile
gem "anycable-rails", "~> 1.4"
Docker Compose (composants)
version: '3.8'
services:
anycable:
image: ghcr.io/anycable/anycable-go:latest
container_name: anycable
restart: unless-stopped
command: -p 8080 -r redis://redis:6379
ports:
- "8080:8080"
redis:
image: redis:7-alpine
container_name: anycable-redis
restart: unless-stopped
# Your Rails app exposing ActionCable
app:
build: .
environment:
- ANYCABLE_URL=ws://anycable:8080
- REDIS_URL=redis://redis:6379
🔄 Alternatives
Open Source
- ActionCable (Rails) — Built-in, mais limité
- Phoenix Channels (Elixir) — Excellente alternative
- app-ntfy — Pour push simple (pas WebSocket générique)
Propriétaires
- Pusher — SaaS WebSocket
- Ably — Real-time PaaS
- PubNub — Real-time messaging
🔐 Sécurité
- WSS obligatoire via reverse proxy.
- Auth via channels : AnyCable ne fait pas d'auth, votre app Rails le gère via
connection.rb. - Rate limiting : configurer côté Go (
--limits). - Idempotency : les broadcasts sont best-effort ; pour critiques, ajouter confirmation applicative.
📚 Ressources
Pages Liées
- cat-notifications — Catégorie Notifications
- app-ntfy — Pour notifications simples
- recettes-docker-compose — Templates Docker