Files
wiki/Catalogue-Self-Hosted/apps/app-anycable.md
T
2026-06-09 18:40:21 +02:00

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