Ben, quand les RFC sont bien écrites, les syntaxes abnf correctes tu peux recoder un protocole en 3 mois avec un bon développeur dans C, C++, java ou ruby .
Mongrel en est l'exemple : http://www.complang.org/ragel/ (j'ai perdu la page web ou le développeur interviewé raconte cette histoire).
Sa méthodologie de mémoire est :
- Tu prends un framework orienté evènement (twisted, POE, whatever);
- Tu prends ragel, tu génères ton automate à état à partir de la norme ;
- Tu fait de la plomberie pour faire correspondre les états bnf formels aux état du protocole réseau que tu veux, rajouter les conf;
- Tu écris les hook pour chaque état en transposant calmement les actions décrites dans la RFC ;
- Tu fais des tests non «unitaires» mais de conformité au protocole, et tu raffines jusqu'à ce que tu atteignes 100% (je parie que c'est la partie la plus longue)
Il se trouve que ragel génère du donc C tu peux essayer, le résultat devrait être le même qu'avec ruby, juste plus long.
À titre perso J'ai pas réussi à générer le code pour la norme diameter, on dirait que la syntaxe est incomplète ou non conforme, ou alors qu'il faut peut être que j'apprenne l'info :)
[^] # Re: J'y crois pas.
Posté par Jul (site web personnel) . En réponse à la dépêche Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon. Évalué à 1.
Mongrel en est l'exemple :
http://www.complang.org/ragel/ (j'ai perdu la page web ou le développeur interviewé raconte cette histoire).
Sa méthodologie de mémoire est :
- Tu prends un framework orienté evènement (twisted, POE, whatever);
- Tu prends ragel, tu génères ton automate à état à partir de la norme ;
- Tu fait de la plomberie pour faire correspondre les états bnf formels aux état du protocole réseau que tu veux, rajouter les conf;
- Tu écris les hook pour chaque état en transposant calmement les actions décrites dans la RFC ;
- Tu fais des tests non «unitaires» mais de conformité au protocole, et tu raffines jusqu'à ce que tu atteignes 100% (je parie que c'est la partie la plus longue)
Il se trouve que ragel génère du donc C tu peux essayer, le résultat devrait être le même qu'avec ruby, juste plus long.
À titre perso J'ai pas réussi à générer le code pour la norme diameter, on dirait que la syntaxe est incomplète ou non conforme, ou alors qu'il faut peut être que j'apprenne l'info :)