Aller au contenu

Pour les applications de navigation et de mobilité

La couche des dangers, sans avoir à construire le réseau

Votre application guide déjà un conducteur. Ce qu’elle ne peut pas construire seule, c’est la couche qui dit ce qui l’attend sur la route, parce qu’il faut une foule pour cela. Relay est cette foule, partagée : ce que signalent vos utilisateurs part vers tous les autres participants, et ce que signalent les leurs vous revient — en plus du flux public national français, déjà sur le réseau.

ce que voit votre conducteur

Un bandeau, et des repères sur votre propre carte

Ce téléphone est abonné au réseau déployé en ce moment même, en un point de Paris. Tout ce qui est dans le cadre, Relay le fournit ; tout ce qui est en dehors est à vous, et le reste.

--:--
élevée5,8 km

Accident

A14

via Cudatus Relay15 à portée
  • Le bandeau

    Le prochain danger sur la route du conducteur, pas le plus spectaculaire du secteur — sa nature, sa gravité et sa distance. Un champ chacun, déjà dans l’enveloppe.

  • Les repères

    Chaque événement actif dans le disque d’abonnement, au fil de son arrivée. Ni boucle de polling ni réconciliation : le flux envoie un instantané, puis des deltas.

  • Tout le reste

    La carte, l’itinéraire, l’heure d’arrivée, la voix, le design. Relay fournit des données et rien d’autre — pas de SDK à adopter, pas de composant à afficher.

ce que vous avez dès le premier jour

La première requête renvoie déjà quelque chose

Vous ne démarrez pas sur un réseau vide. Relay ingère le flux routier national français, publié en DATEX II sous Licence Ouverte 2.0, et le sert sur le même contrat que tout le reste.

1
incidents gestionnaires en cours

flux national, lu au rendu de cette page

13
types de danger

filtrer sur le type, affiner sur le sous-type

1 s
délai de diffusion

engagement p95, de la publication à la réception

Un abonnement est un disque autour d’un point. Un itinéraire se couvre en s’abonnant à des disques le long du trajet — le même appel, répété — et une vue nationale est un assemblage de disques. Ce qui circule sur le réseau en ce moment.

ce que vous construisez

Un flux, trois écouteurs

Du HTTP simple et des server-sent events. Votre serveur émet un ticket de 300 secondes avec votre clé, le navigateur ouvre le flux avec ce ticket, et trois écouteurs font tout le client.

GET /v1/stream
const API = "https://api.cudatus.com";

// on your server — the key stays here
const { ticket } = await fetch(`${API}/v1/stream/tickets`, {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.RELAY_KEY}` },
}).then((r) => r.json());

// in the browser — a ticket, never the key. The disc follows the driver.
const stream = new EventSource(
  `${API}/v1/stream?lat=48.8698&lon=2.3078&radius=8000&ticket=${ticket}`,
);

// everything already live in the disc, once, on connect
stream.addEventListener("snapshot", (e) => replaceAll(JSON.parse(e.data).events));

stream.addEventListener("event", (e) => {
  // the delta is an envelope: created | updated | expired
  const { change, event } = JSON.parse(e.data);
  change === "expired" ? drop(event.event_id) : upsert(event);
});

// we always close on schedule; the ticket died long before
stream.addEventListener("bye", () => reconnectWithAFreshTicket());

Un client correct doit trois choses au protocole : traiter chaque delta comme un upsert, retirer lui-même un événement une fois son expires_at passé, et demander un nouveau ticket après un bye. Les repères disparaissent d’eux-mêmes, c’est une propriété du contrat : vous n’écrivez aucune purge des dangers périmés. Le contrat de streaming les détaille une à une.

dans l’autre sens

Vos utilisateurs sont ce qui fait venir la prochaine application

Publier est gratuit sur toutes les offres, et le restera. Un conducteur touche une icône, le suivant répond « toujours là » ou « disparu », et chacun des deux est un appel HTTP. La validation exige des véhicules distincts et les événements expirent d’eux-mêmes : vous n’écrivez ni file de modération ni tâche de nettoyage.

Ce que vos utilisateurs voient et qu’aucun flux ne transporte

Un gestionnaire routier publie ce sur quoi il a envoyé une équipe. Un nid-de-poule avant cette intervention, un contrôle de police, un radar automatique, des débris sur la voie de gauche — rien de tout cela n’est dans le système de qui que ce soit d’autre, et tout figure déjà dans le vocabulaire.

La couche communautaire, code compris

Pourquoi un réseau neutre plutôt qu’un réseau plus gros

Nous ne construisons aucune application de navigation, et c’est une contrainte fondatrice, pas une étape. Nous n’avons aucun produit que vous alimenteriez pour ensuite l’affronter — c’est la seule raison pour laquelle les autres applications de ce réseau acceptent d’y être avec vous.

L’argument structurel

ce que ça coûte

Gratuit pour démarrer, et les prix sont publics

Vous payez la lecture du réseau, décomptée en lectures. Publier est gratuit sur toutes les offres. Pas de carte pour commencer, et personne à appeler.

10 000 lectures par mois, gratuites, sans carte bancaireOffres payantes à partir de 24,90 € par moisVoir les offres