Thin: un nuovo web server per Ruby

ThinMarc-André Cournoyer è uno sviluppatore canadese che ha deciso di creare un web server per Ruby, che sia in grado di servire un carico di richieste maggiore rispetto a Mongrel. Stando alle parole del suo annuncio, Thin sarebbe anche più veloce di Evented Mongrel, la versione ottimizzata di Mongrel che fa uso del framework EventMachine.

Il grafico sottostante mostra come Thin si discosta nettamente da Mongrel, particolarmente quando il numero di connessioni concorrenti inizia ad aumentare notevolmente (in grigio chiaro):

Le performance di Thin

Il demone HTTP, ci confessa Cournoyer, fa in realtà uso di tre componenti ben noti nell’ambiente Ruby:

  • Il parser HTTP di Mongrel, che è alla base di Mongrel stesso;
  • La libreria EventMachine per processare l’I/O di rete in maniera rapidissima;
  • Rack, per integrare il web server Thin con i framework Ruby esistenti (Rails, Nitro, Ramaze, Merb, ecc…).

Che il futuro del deployment in Rails arrivi da meno di 500 linee di codice in Ruby, scritte da questo nuovo “eroe” dall’accento francese? Staremo a vedere, per ora sappiamo solo che a differenza di alcuni lui non avrà bisogno di dire Pardon my French. 😉

About Antonio Cangiano

Antonio lavora come Software Engineer & Technical Evangelist presso la IBM in Canada. È inoltre il direttore di Stacktrace.it, un internet marketing strategist, imprenditore del web, serial blogger, e autore di un paio di libri in inglese (recentemente Technical Blogging.) Puoi dare un'occhiata ai suoi progetti sulla sua homepage e seguendolo su Twitter.

Comments

  1. Grazie per la segnalazione, questa è una cosina che mi interessa assai. 😀
    Volo immantinente a scaricare il codice. 😀

  2. Interessante (ma qui sospetto che Valentino abbia qualcosa da dire) la tendenza diffusa a “riscoprire” la programmazione di rete asincrona:

    * server HTTP e librerie che usano libevent

    * migliore integrazione con le funzionalità native dei diversi sistemi operativi, multipiattaforma o specifiche a una piattaforma

    Peccato solo che pyevent non sia molto stabile, avrebbe bisogno di un po’ di love dalla comunità…

  3. In realtà non è semplicemente riscoprire. Questi di EventMachine (usato da thin) usa proprio pattern, nomi e concetti che abbiamo sviluppato (e in certi casi _inventato_) noi in Twisted Matrix :).

    http://eventmachine.rubyforge.org/svn/version_0/DEFERRABLES

    Giustamente poi riportano anche gli autori originali comunque:
    “EventMachine’s Deferrable borrows heavily from the “deferred” object in Python’s “Twisted” event-handling framework”
    E fatto da un linguaggio che avrebbe le continuations e` un grosso onore :).

  4. thin sembra fico, peccato che, a leggere l’articolo ci sia un chiarissimo “questa è una versione super ultra alpha e chi la usa è idiota”.
    E’ comune che le cose siano veloci in alpha, e lente quando funzionano davvero, quindi moderiamo gli entusiasmi 🙂

    Ah, e per i pythonisti ignari: anche Rack è un’idea pythonesca, altro non è che un’implementazione rubyish di WSGI 😀

  5. Interessante il tempismo dell’annuncio, poco dopo il rant di Zed, che sicuramente getta per osmosi un pò di cattiva luce su Mongrel…

  6. +1 al commento di Giovanni. Mi sembra di capire che il mondo di Rails sia un mondo dai facili entusiasmi… ammiro il tempismo con cui è stato lanciato Thin, gli avvoltoi del colorado non saprebbero fare di meglio 😉

  7. Jeko, in ogni caso non generalizzerei, anche quello è pericoloso. 😉

  8. Secondo me non si tratta di “generalizzare”, l’open source è un ecosistema: se qualcuno/qualcosa arranca c’è sempre qualcun’altro pronto ad inserirsi nella sua nicchia.
    Mongrel è e rimane un ottimo prodotto, ovviamente gli autori di Thin – pur avendo fatto un buon lavoro – approfittano dell’impasse di Zed per farsi un po’ di pubblicità: nulla di male, fa parte del gioco. 🙂

  9. Mi riferivo a “Rails […] un mondo di facili entusiasmi”. 🙂

    Infatti, quanto dici tu è corretto. 😉

Policy per i commenti: Apprezzo moltissimo i vostri commenti, critiche incluse. Per evitare spam e troll, e far rimanere il discorso civile, i commenti sono moderati e prontamente approvati poco dopo il loro invio.