民政局是干什么的| 网易是干什么的| 苑什么意思| 胰岛素偏高是什么意思| 脑白质疏松是什么病| 避孕套什么牌子好| 属相是什么意思| 224是什么星座| 鸟屎掉衣服上有什么预兆| 女生右眼睛老是跳是什么原因| 吃什么补肾壮阳最快速| 黄体破裂吃什么药| 恐龙是什么时代| eft是什么意思| 人黑穿什么颜色的衣服好看| 生育能力检查挂什么科| 奇脉见于什么病| 血红蛋白低是什么原因| 预防感冒吃什么药| 86属什么生肖| mnm是什么单位| vivian是什么意思| 更年期出汗吃什么药好| 青春痘长什么样| 彘是什么意思| 细小是什么病什么症状| 富士康体检都检查什么| 侍郎是什么官职| 正常精液是什么颜色| 缘木求鱼是什么意思| 什么是钝角| 提心吊胆是什么生肖| 尿急吃什么药| NT是检查什么的| 为什么会有血管瘤| 蜜蜡五行属什么| 什么是梨形身材| 心里堵得慌是什么原因| 市场部是做什么的| 腿血栓什么症状| 刺激是什么意思| 史无前例是什么意思| 老人家头晕是什么原因| 明年是什么生肖| 明天有什么考试| 八月初十是什么星座| 74年属什么生肖| 龙虾和什么不能一起吃| 20属什么| 三头六臂指什么生肖| 谷丙转氨酶是检查什么| 动脉斑块是什么意思| 停月经有什么症状| 形态是什么意思| 脑供血不足吃什么中药| 门良念什么| 新生儿嘴唇发紫是什么原因| 火牙是什么原因引起的| 淋巴结肿大是什么样子的| 欺世盗名是什么意思| 为什么会胸闷| 拿铁咖啡什么意思| 健康管理是什么| 什么是扦插| 江米和糯米有什么区别| 梅花开在什么季节| 海鲜不能和什么一起吃| 妇科和妇产科有什么区别| 月经每次都推迟是什么原因| 笃什么意思| 开通花呗有什么风险| 什么得当| 7月23号是什么星座| 植物的茎有什么作用| mct是什么| 鬼火是什么| 嘴里起血泡是什么原因| 牙龈出血用什么药| 怕什么| 火可念什么| 维生素c有什么好处| 下午1点到3点是什么时辰| 山药叶子长什么样图片| 什么啤酒度数高| 什么叫自闭症| 生眼屎是什么原因引起的| 肝胃不和吃什么药| 时过境迁什么意思| nh3是什么| 阁五行属什么| 逍遥丸什么时候吃| 食管反流什么症状| 牛跟什么相冲| 什么光会给人带来痛苦| 霉菌性阴道炎用什么药好| 流汗多是什么原因| 妒忌是什么意思| 房速是什么意思| 穷是什么意思| add什么意思| 4.4是什么星座| 说话不清楚是什么原因导致的| 常喝普洱茶有什么好处| 牙龈起泡是什么原因| 黄历中的入宅是什么意思| 氨纶是什么| 刘欢属什么生肖| 鳞状上皮内高度病变什么意思| 3月23日是什么星座| 口腔苔藓用什么药| 8.5是什么星座| 世态炎凉是什么意思| 男性阴囊瘙痒用什么药膏| 金字塔里面有什么| 便秘有什么症状| aid是什么意思| 牙齿遇热就疼什么原因| 15天来一次月经是什么原因| 神经性梅毒有什么症状| 梦见大蜈蚣是什么预兆| 心脏为什么会突然刺痛| 副营级是什么军衔| 螺旋ct检查什么| 肠道感染吃什么消炎药| 梦见买猪肉是什么预兆| 系带断了有什么影响| 湦是什么意思| 六月二十日是什么日子| 老被蚊子咬是什么原因| 健脾去湿吃什么药| 雷特综合症是什么症状| 罗姓男孩取什么名字好| 肛裂是什么| 亦字五行属什么| 生理曲度变直什么意思| 11月26是什么星座| 1942年属什么生肖| 积福是什么意思| 天蝎座什么星象| 嗯嗯嗯是什么意思| 梦见战争是什么兆头| 刘海是什么意思| 妹妹你坐船头是什么歌| 1月28日什么星座| 双离合什么意思| 虚热是什么意思| 狗感冒吃什么药| 总头晕是什么原因| 生日蛋糕上写什么字比较有创意| 牙龈出血是什么原因| 猫什么时候发情| 漠漠什么意思| 雪球是什么| 天麻有什么功效| 怀孕10天左右有什么症状| g50是什么高速| 静水流深什么意思| 守株待兔是什么意思| 白茶有什么功效| nlp是什么意思| 首长是什么意思| 遭罪什么意思| 什么方法| 肿瘤患者吃什么药可以抑制肿瘤| 鸡头上长痘痘用什么药| 什么是假性近视眼| crh是什么意思| hcg下降是什么原因| 为什么腿会酸痛| 布加综合征是什么病| 上海月薪三万什么水平| 湿气是什么意思| 尿出来很黄是什么原因| 木糖醇是什么| 明年是什么年啊| 菜板买什么材质的好| 有什么好看的古装剧| 经常便秘是什么原因| 黄疸严重会造成什么后果| 双性恋是什么意思| 长期吃二甲双胍有什么副作用| 胺试验阳性是什么意思| 宫颈管少量积液是什么意思| 乳腺瘤是什么引起的| 1939年属什么| 上火为什么会牙疼| 知否知否应是绿肥红瘦什么意思| 三个大是什么字| 鬼迷日眼是什么意思| p是什么医学| 质感是什么意思| 取环后月经量少是什么原因| 汕头有什么好玩的景点| 七十岁是什么之年| 头疼看什么科| 外阴瘙痒用什么药| 违背是什么意思| 肝的反射区在什么部位| 龟苓膏是什么做的| 钩藤为什么要后下| 黑色屎是什么原因| 622是什么星座| 冉冉是什么意思| 虚是什么意思| 五级士官是什么级别| 为什么会宫寒| camp医学上是什么意思| 早博是什么| 咸鸭蛋为什么会出油| 金丝玉是什么玉| 玉是什么结构| 洋姜学名叫什么| 什么叫世家| ups是什么快递公司| 月经前一周是什么期| 低血压头晕吃什么药| 松花蛋不能和什么一起吃| 骨髓抑制是什么意思| 舌头臭是什么原因| 33周岁属什么生肖| 肿瘤是什么病| 萎缩性胃炎吃什么食物好| 什么的童年| 腿肿是什么原因| 相濡以沫是什么生肖| 翟读什么| 去医院看脚挂什么科| 为什么癌症治不好| 梦到前妻预示什么| 做穿刺是什么意思| 午时银花露有什么功效| 胸闷气短吃什么药效果好| 虱目鱼在大陆叫什么| 什么映雪| 崇洋媚外是什么意思| 月经下不来是什么原因| 样本是什么意思| 吃什么能降铁蛋白| 父亲节送什么花| msv是什么单位| 什么原因引起耳石症| 今年男宝宝取什么名字好| 歧视什么意思| 偏光镜什么意思| 电视剧上星是什么意思| 电头是什么| 上次闰六月是什么时候| 阴唇大什么原因| 95年是什么命| 军长是什么级别| 拐枣泡酒有什么功效| 肠道长息肉是什么原因造成的| 梦见金项链是什么意思| 尿路感染吃什么药最好| 直肠增生性的息肉是什么意思| 矫正视力什么意思| 霉菌性阴道炎吃什么消炎药| 评头论足什么意思| 柔顺剂有什么用| 脖子皮肤黑是什么原因| 微针是什么| 抽动症是什么原因引起的| 阴囊湿疹用什么药效果最好| 纯是什么意思| 百度

PSGI/Plack

Superglue interface between perl web application frameworks and web servers, just like Perl is the duct tape of the internet.

PSGI is an interface between Perl web applications and web servers, and Plack is a Perl module and toolkit that contains PSGI middleware, helpers and adapters to web servers.

PSGI and Plack are inspired by Python's WSGI and Ruby's Rack.

Documentation

Get Started

Install cpanminus and then run the following command to install Plack and utility modules.

$ cpanm Plack

What People Say

"I love this... I think it's exactly the right answer to what I was looking for, for a really simple webapp."

-Benjamin Trott, CTO and Co-founder of Six Apart

"Wow, this is nothing short of awesome. A big ++ to the entire PSGI/Plack team!"

-Stevan Little, Infinity Interactive, Moose author

"This is something we've needed for a long time: a clean and simple way to respond to HTTP requests without the cruft of CGI"

-Yuval Kogman, Infinity Interactive, KiokuDB developer

"PSGI (is) an absurdly simple, manifestly beautiful specification for an interface between Perl web apps and web servers."

-Patrick Donelan, WebGUI developer

"Thanks for including us! We're very excited about a future where we don't have to worry about web server support"

-Jonathan Swartz, Mason author

"Today, I finished a sizable project to upgrade almost all of our web stuff to run on Plack. Having done that, everything is better!"

-Ricardo Signes, Perl 5 Pumpking

"I \N{HEAVY BLACK HEART} PSGI."

-Simon Cozens, the author of Advanced Perl Programming

"miyagawa++ # fucking awesome"

-Matt S Trout, Shadowcat Systems, Catalyst and DBIx::Class developer

Repositories

Servers

Plack (web server adapters)
Plack core includes a CGI runner (for running any PSGI application as a CGI script), a FastCGI daemon and mod_perl handlers for Apache1 and 2.
HTTP::Server::PSGI
HTTP::Server::PSGI is a reference PSGI standalone web server implementation and is included in the Plack core distribution.
HTTP::Server::Simple::PSGI
HTTP::Server::Simple::PSGI is based on HTTP::Server::Simple and has zero dependency other than HTTP::Server::Simple, which itself doesn't have any dependencies. This is best for embedding to build a standalone web server or dependency free frameworks.
Starman
Starman is a high-performance, preforking and PSGI compatible HTTP server that has unique features such as HTTP/1.1 support, multiple interfaces support including UNIX domain sockets, graceful restarts and dynamic worker pool configuration via signals.
Twiggy
Twiggy is an AnyEvent based non-blocking (asynchronous) and lightweight PSGI web server. Best to run AnyEvent based web applications to implement long-poll, server push or WebSockets etc., such as the one built on top of the Tatsumaki framework.
Corona
Corona is a Coro based PSGI web server that supports coroutines (cooperative threads) for each socket and clients. Best to use with AnyEvent or Coro friendly non-blocking web applications such as Continuity or Tatsumaki framework
Feersum
Feersum is an HTTP server built on EV/libev. Feersum uses a single-threaded, event-based programming architecture to scale and can handle many concurrent connections efficiently in both CPU and RAM.
Starlet
Kazuho Oku's Starlet is based on the reference HTTP::Server::PSGI web server but adds a support for preforking, graceful restarts, shutdown and hot deploy via Server::Starter.
Gazelle
Gazelle is based on Starlet, but has added a lot of performance optimizations using C/XS-based modules as well as new Linux features such as accept4 or writev.
Arriba
Arriba is a preforking PSGI HTTP server based on Starman with added support for the SPDY protocol.
Misc. HTTP server adapters
There are many Perl web servers and adapters on CPAN and Plack handlers for them, to run PSGI applications on FCGI::EV, AnyEvent::FCGI, Danga::Socket, AnyEvent::HTTPD, SCGI, AnyEvent::SCGI and POE. They are available as separate distributions.
ReverseHTTP
ReverseHTTP server allows you to run a PSGI application on your desktop or inside the firewall but allows external access via reversehttp.net gateway.
uWSGI
uWSGI is a C based developer friendly WSGI server. From the 0.9.5 release it include a plugin technology to add support for other languages, which includes an embedded PSGI handler.
mod_psgi
mod_psgi is an Apache2 module that runs PSGI applications using an embedded Perl interpreter. Developed by Jiro Nishiguchi
evpsgi
evpsgi is an evhttp based http server that runs PSGI applications with the embedded Perl interpreter. Developed by Masayoshi Sekimura
Perlbal
Perlbal::Plugin::PSGI allows you to run PSGI applications on Perlbal. Note that because Perlbal runs in a non-blocking event loop (Danga::Socket), your application is also not supposed to block. If your application blocks (with database acesss or network I/O), do not use this plugin and instead run your PSGI application with the prefork Plack server and reverse proxy to the backend as usual.
nginx embedded perl
Kazuhiro Osawa's nginx patches allows you to run PSGI applications on a Perl interpreter embedded inside nginx. This patch is considered highly experimental and not recommended for the production use. You're recommended to run your (possibly blocking) PSGI application with prefork/fastcgi servers and put nginx in front, and in that case you don't need this patch.

Frameworks

Catalyst
Catalyst is one of the most popular web application frameworks in Perl and has native PSGI support as of version 5.9000. Support for older versions is available through Catalyst::Engine::PSGI.
Jifty
Jifty is a full-stack Perl web application framework that comes with continuations, form-based dispatch, ORM and A Pony. Jifty has replaced much of its internals with Plack modules.
CGI::Application
CGI::Application is a CGI.pm-based lightweight web framework. Any CGI::Application based applications can run as a PSGI application using CGI::PSGI and CGI::Application::PSGI.
HTTP::Engine
HTTP::Engine is a micro web application framework and is a "father of PSGI/Plack" since we owe lots of code and ideas. HTTP::Engine itself now has PSGI Interface support as an adapter since 0.03 on CPAN.
Dancer
Dancer is a Sinatra-like micro web application framework and has supported PSGI since version 0.9904.
Mason
Mason allows you to embed code in HTML templates and can now run on any PSGI supported web server using HTML::Mason::PSGIHandler
Squatting
Squatting is a Camping-inspired Web Microframework and has a support for PSGI through Squatting::On::PSGI.
Continuity
Continuity is a Coro based web application libary that supports Continuations to build statefull applications and support PSGI via Coro server since version 1.1.1 on CPAN.
Maypole
Maypole is a Struts-inspired MVC web application frameworks built on top of Class::DBI ORM. Maypole applications can run as PSGI applications using Maypole::PSGI.
Tatsumaki
Tatsumaki is a web application framework built on top of Plack and AnyEvent: natively supports non-blocking I/O through psgi.streaming and psgi.nonblocking, non-blocking HTTP clients, long-poll Comet services and server push.
Mojolicious
Mojolicious is Merb and Sinatra inspired web framework and has zero dependencies to non-core Perl modules. It has a native PSGI adapter since 0.999920 on CPAN.
Other frameworks
There are lots of other individual frameworks that supports PSGI and Plack. Some of them are not available on CPAN but are developed on github: Web::Simple, Angelos, Ark, Schenker, Noe, Kamui and WebNano.

Applications

WebGUI
Patrick Donelan has built PSGI / Plack into WebGUI 8.

Middleware and Utilities

CGI::PSGI
CGI.pm subclass to handle PSGI env hash to provide a CGI.pm-compatible interface. Very useful to migrate CGI.pm-based web application frameworks to the PSGI interface.
Plack::Request
Plack::Request and Plack::Response is a simple wrapper around PSGI environment hash and response array to access those values using an Object oriented API.
IO::Handle::Util
Utility module to create an IO::Handle-like object instantly with a simple interface.
HTTP::Parser::XS
Super fast XS-based PSGI compatible HTTP header parser, used in many Plack server implementations.
CGI::Emulate::PSGI
Run any CGI scripts (whether it uses CGI.pm or not) as a PSGI application by emulating a CGI environment. It does the opposite of CGI runner PSGI server impementation (Plack::Server::CGI). Also take a look at CGI::Compile which compiles an existing CGI scripts into a callable subroutine reference, best to be used with CGI::Emulate::PSGI.

Slides and Blog Posts

Note that some materials and technical details might be outdated.

Plack Handbook
A little book explaining the basics of PSGI and Plack. Content is freely available and you can buy eBook files for downloads.
Plack Blog
Reblogging blog posts about PSGI and Plack
Plack Advent Calendar
24 days of Tips and tricks for PSGI and Plack
Plack: Superglue for Perl web frameworks and servers
Tatsuhiko Miyagawa at O'Reilly OSCON, July 2010
PlebGUI: WebGUI meets Plack
Patrick Donelan writes a good introduction for PSGI and Plack from the web application developers point of view.
I finally get PSGI and Plack!
Simon Cozens writes a great post about what PSGI is, by comparing it with HTTP::Engine.
Tatsumaki, Plack based non-blocking framework
Tatsuhiko Miyagawa explains psgi.streaming interface to enable asynchronous requests in web frameworks. Screencast in Japanese is also available.
PSGI/Plack
Tokuhiro Matsuno and Tatsuhiko Miyagawa at YAPC::Asia 2009 (Japanese).

Community

Tatsuhiko Miyagawa's blog and delicious bookmarks (PSGI and Plack) have a lot of updated information and links to PSGI/Plack related entries. We're chatting on #plack on irc.perl.org and have a low-traffic mailing list.

孕妇吃什么钙片好 孕晚期呕吐是什么原因 edo是什么意思 古代医院叫什么 女生经常手淫有什么危害
月经不来挂什么科 穷字代表什么生肖 田亮为什么不娶郭晶晶 肩胛骨疼挂什么科 右手臂痛是什么预兆
荔枝什么时候过季 电瓶车充不进电是什么原因 步步为营是什么意思 蓝帽子标志是什么意思 经期适合喝什么汤
青蛙怕什么 双非是什么意思 勃艮第红是什么颜色 糖尿病适合喝什么饮料 碎银子是什么茶
固执是什么意思kuyehao.com 中性粒细胞偏高是什么原因hcv8jop2ns9r.cn 进门见什么好jinxinzhichuang.com 慢性咽炎吃什么hcv9jop2ns8r.cn 防小人应该佩戴什么fenrenren.com
马赛克是什么意思啊hcv8jop3ns7r.cn 小白加小白等于什么jinxinzhichuang.com 做梦梦见很多蛇是什么意思hcv7jop6ns3r.cn 隐翅虫咬人后用什么药hcv9jop6ns1r.cn 什么书在书店买不到hcv7jop9ns5r.cn
眼白出血是什么原因hcv9jop1ns1r.cn 小便憋不住是什么原因hcv8jop5ns0r.cn 牛仔布料是什么面料hcv7jop9ns6r.cn 袋鼠吃什么食物hcv8jop2ns2r.cn 玉米有什么功效hcv7jop5ns2r.cn
舌头干涩是什么病前兆hcv9jop7ns0r.cn 腰不好挂什么科hcv9jop4ns4r.cn 自五行属什么hcv9jop4ns9r.cn 八字中的印是什么意思hcv9jop4ns9r.cn 写意是什么意思naasee.com
百度