Back to flin
flin

Routage basé sur les fichiers dans FLIN

Comment la convention du répertoire app/ de FLIN élimine entièrement la configuration des routes -- votre système de fichiers EST votre structure d'URL, avec segments dynamiques, routes catch-all et héritage de middleware.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 1 min flin
EN/ FR/ ES
flinroutingfile-basedconvention

FLIN n'a pas de fichier de routage. Le répertoire app/ EST la table de routes. Créez un fichier app/about.flin et l'URL /about existe. Créez app/api/users.flin et /api/users est en ligne. Créez app/blog/[slug].flin et chaque URL /blog/anything est gérée. Supprimez le fichier et la route disparaît.

Les règles sont simples : index.flin correspond à la racine du répertoire, name.flin correspond à /name, [param].flin correspond à un segment dynamique, [...param].flin correspond à un segment catch-all, _middleware.flin n'est jamais une route -- il applique le middleware au répertoire.

Le routeur utilise une structure trie, donc la correspondance est O(k) où k est le nombre de segments du chemin -- pas O(n) où n est le nombre total de routes.


Ceci est la partie 97 de la série "How We Built FLIN".

Navigation de la série : - [96] FLIN's Embedded HTTP Server - [97] File-Based Routing in FLIN (vous êtes ici) - [98] API Routes: Backend and Frontend in One File - [99] Auto JSON and Form Body Parsing

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Ça marche, et ce n'est pas fini

Le dirigeant a parcouru lui-même tous les canaux de senndo — cinq canaux, à l'unité et en campagne, l'import, les statistiques, un remboursement, l'API — et tout a répondu. Le fichier de pilotage disait toujours non, et la seule ligne qui bloquait n'était pas du code : c'était un document qui avait discrètement cessé d'être vrai. Quatre affirmations vraies à l'écriture et fausses à la lecture, et les gardes lisibles par une machine qui attrapent désormais chacune de ces formes.

13 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant

Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26