File: mongrel2.wiki

package info (click to toggle)
mongrel2 1.12.0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,976 kB
  • sloc: ansic: 39,083; python: 2,833; sql: 1,555; sh: 467; makefile: 360; asm: 189; yacc: 145; php: 73; awk: 28; sed: 5
file content (148 lines) | stat: -rw-r--r-- 8,803 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148

<h1>About Mongrel2</h1>

<p style="font-size: 1.2em;">Mongrel2 is an <em>application</em>,
<em>language</em>, and <em>network architecture</em> <b>agnostic</b> web
server that focuses on web <b>applications</b> using <em>modern</em> browser
technologies. <img src="http://mongrel2.org/static/logo.png" align="right"></p>

<h2><a name="features">Features</a></h2>

<ul>
    <li><b>Language Agnostic</b> with a simple backend protocol supporting <a href="#languages">17 languages and platforms</a> all written by Mongrel2 fans.</li>
    <li><b>Modern Browser Friendly</b> designed to handle HTTP, Flash XMLSockets, or WebSockets, Long Polling on the same socket transparently.</li>
    <li><b><a href="http://zeromq.org">ZeroMQ</a> Enabled</b> as well as HTTP proxy support so it works with what you have already while giving you new super powers.</li>
    <li><b>Network Architecture Agnostic</b> so you can carve your operations up anyway that reduces costs.</li>
    <li><b>N:M Messaging Patterns</b> means you can have any N handlers answer to any M browsers arbitrarily, but still easy to do plain request/response.</li>
    <li><b>Automation Loving Configs</b> that are easily accessible via any programming language with an Model-View-Controller design.</li>
    <li><b>Modern Internal Design</b> using the Mongrel 1 HTTP parser powering many big companies with a proven security track record, event based I/O, fast coroutines
    to handle that I/O, and smart reasonable defaults with zero configuration needed usually.</li>
    <li><b>Documented, Documented, Documented</b> We <a href="http://mongrel2.org/static/mongrel2-manual.html">document everything</a> in a well written manual that
    shows you how to use every feature.</li>
    <li><b>BSD Licensed</b> and all with a <a href="/wiki?name=License">BSD 3-clause license</a>.</li>
    <li><b><a href="http://tir.mongrel2.org/">Tir</a></b> An official framework written in Lua that shows how to use Mongrel2 to create <a href=
"#frameworks">other frameworks for PHP, Python, etc</a>.</li>
</ul>



<h2><a name="download">Download</a></h2>

<p>Mongrel2 is now 1.7.5:</p>

<ul>
    <li><a href="/static/downloads/mongrel2-1.7.5.tar.bz2">mongrel2-1.7.5.tar.bz2</a></li>
</ul>


<h2><a name="docs">Documentation</a></h2>

<p>Mongrel2 is a very well documented piece of software, as we think great docs will make you
more productive and get you running.  The documentation is written to be easy to read, pack a lot
of information in a small space, and cover everything you need without going crazy on minute details.
Currently we have:<p>

<ul>
    <li><a href="/wiki?name=GettingStarted">GettingStarted</a> a crash course in getting up and running.</li>
    <li><a href="http://mongrel2.org/static/mongrel2-manual.html">The Mongrel2 Manual (HTML)</a> is a complete manual covering everything from getting started, to writing your first handlers.</li>
    <li><a href="http://mongrel2.org/static/mongrel2-manual.pdf">The Mongrel2 Manual (PDF)</a> grab this if you want better formatting.</li>
    <li><a href="/wiki?name=DesignCriticisms">DesignCriticisms</a></li>
    <li><a href="/wiki?name=ContributorInstructions">ContributorInstructions</a> for if you want to make a patch.</li>
    <li><a href="/wiki?name=TranslatorGuide">TranslatorGuide</a> for if you want to make a translation to another language.</li>
</ul>

<h2><a name="translations">Translations</a></h2>

<p>We've started translating the manual into Russian as well, for now you can read the 
<a href="/wiki?name=GettingStarted">GettingStarted</a> document in
<a href="/doc/tip/docs/ru/wiki/GettingStarted.wiki">Russian</a>,
<a href="/doc/tip/docs/es/wiki/GettingStarted.wiki">Spanish</a>,
<a href="/doc/tip/docs/de/wiki/GettingStarted.wiki">German</a> and
<a href="/doc/tip/docs/fr/wiki/GettingStarted.wiki">French</a>
with more to come.</p>


<h2><a name="languages">Languages</a></h2>

<p>Mongrel2 fans have written quite a few handlers already for many different languages.  Here's the
list of currently supported languages and platforms, in alphabetical order:</p>

<ul>
    <li>C++: <a href="http://github.com/akrennmair/mongrel2-cpp">mongrel2-cpp</a></li>
    <li>C: <a href="https://github.com/derdewey/mongrel2_c_handler/">mongrel2_c_handler</a></li>
    <li>Clojure: <a href="http://github.com/mikejs/ring/tree/master/ring-mongrel2-adapter/">ring-mongrel2-adapter</a></li>
    <li>Common Lisp: <a href="http://github.com/vseloved/cl-mongrel2">cl-mongrel2</a> and <a href="https://github.com/galdor/m2cl">m2cl</a></li>
    <li>Scheme: <a href="http://wiki.call-cc.org/eggref/4/mongrel2">Mongrel2 for Chicken Scheme</a></li>
    <li>Haskell: <a href="http://github.com/cmoore/web-mongrel2">web-mongrel2</a></li>
    <li>Java: <a href="https://github.com/kwo/mojaha">MoJaHa</a> and <a href="https://github.com/asinger/mongrel2j">Mongrel2J</a></li>
    <li>Lua: <a href="http://github.com/jsimmons/mongrel2-lua/">mongrel2-lua</a></li>
    <li>.NET: <a href="http://github.com/AustinWise/m2net">m2net</a></li>
    <li>PHP: <a href="http://github.com/winks/m2php">m2php</a></li>
    <li>Perl: <a href="http://github.com/lestrrat/Plack-Handler-Mongrel2">Plack-Handler-Mongrel2</a> and <a href="https://github.com/jrockway/anyevent-mongrel2/">AnyEvent-Mongrel2</a></li>
    <li>Python: <a href="http://github.com/berry/Mongrel2-WSGI-Handler">Mongrel2-WSGI-Handler</a></li>
    <li>Ruby: <a href="http://github.com/perplexes/m2r">m2r</a> and <a href="http://github.com/darkhelmet/rack-mongrel2">rack-mongrel2</a></li>
</ul>

<h2><a name="frameworks">Frameworks</a></h2>

<p>Mongrel2 works with man WSGI, Rack, Plack and similar framework
middleware systems, so most framework should operate with it out of the box.
In addition to that, there's Mongrel2 <b>specific</b> frameworks that
don't require any middleware and take advantage of Mongrel2 new 
protocol features:</p>

<ul>
<li><a href="http://tir.mongrel2.org/">Tir</a> is a Lua framework written to show how to do direct frameworks with Mongrel2.</li>
<li><a href="http://github.com/j2labs/brubeck">Brubeck</a> is an asynchronous, non-blocking web framework written in Python.</li>
<li><a href="https://github.com/daogangtang/bamboo">Bamboo</a> is a Tir derivative with a bunch more features.</li>
<li><a href="http://www.photon-project.com">Photon</a> is a PHP framework similar to Tir and *way* faster than PHP.</li>
</ul>


<p>It is very easy to create a handler, you should read the <a href="http://mongrel2.org/static/mongrel2-manual.html">manual about handlers</a> for 
information on writing one for your language.</p>




<h2><a name="lists">IRC and Mailing Lists</a></h2>

<ul>
    <li>You can join the <a href="http://librelist.com">Librelist</a> mailing list by emailing <a href="mailto:mongrel2@librelist.com">mongrel2@librelist.com</a>.</li>
    <li>There is an IRC channel #mongrel2 on irc.freenode.org</li>
</ul>

<p>I reserve the right to boot anyone I want off these for being obnoxious, and I arbitrarily define "obnoxious" however I want.</p>


<h2><a name="contributors">Contributors</a></h2>

<p>Here's the current list of contributors of people hacking on Mongrel2:</p>

<ul>
    <li><a href="http://twitter.com/alexgartrell"><b>agartrell</b></a> works on core Mongrel2 like directory serving and the kegogi testing tool.</li>
    <li><a href="http://twitter.com/anderiasch"><b>wink</b></a> wrote the PHP stuff and hacks on Mongrel2.</li>
    <li><a href="http://twitter.com/daltonmatos"><b>daltonmatos</b></a> contributes patches and fixes and hacks on the filters system.</li>
    <li><a href="http://twitter.com/joshrsimmons"><b>jsimmons</b></a> wrote the Lua binding and hacks on the core Mongrel2.</li>
    <li><a href="http://twitter.com/tordek"><b>tordek</b></a> finds bugs in Mongrel2 and edited <a href="http://mongrel2.org/static/mongrel2-manual.html">the manual</a>.</li>
    <li><a href="http://twitter.com/zedshaw"><b>zedshaw</b></a> started it all.</li>
    <li><b>jasom</b> contributes patches and fixes.</li>
    <li><b>pbastov</b> works on translating things to Russian.</li>
    <li><b>phred</b> hacks on procer and some of the core Mongrel2.</li>
    <li><b>rkelly</b> (not the singer) wrote the tnetstrings C code we use and fixes things.</li>
</ul>



<h3>Thanks To</h3>
<ul>
<li><a href="http://websterclay.com/">Webster Clay</a></li>
<li><a href="http://cramerdev.com">Cramerdev</a></li>
<li><a href="http://ThinkCode.TV">ThinkCode.TV</a></li>
<li><a href="http://envato.com/">Envato</a></li>
<li><a href="http://highgroove.com/">Highgroove Studios</a></li>
<li><a href="http://infinitelybeta.com">Infinitely Beta</a></li>
<li><a href="http://pragmaticbadger.com/">Pragmatic Badger</a></li>
<li><a href="http://mongrel2.org/wiki?name=Donors">.. and Friends.</a></li>
</ul>