Yapc fukuoka crust

Tokuhiro Matsuno
Tokuhiro MatsunoSoftware Engineer at LINE Corp
P6W に基づく Perl6 に於け
る Web 開発の基礎となる
Crust
Tokuhiro Matsuno

LINE Corporation Service Dev.1
Who are you?
• Amon2, Test::Pretty, Furl, Harriet, HTTP::Session2,
Test::TCP, Minilla, etc…

• Co-author of Plack

• Works as a tech lead at LINE Corp.
LINE♡Perl
Perl6?
• Perl 5 の後継?兄弟?

• start at 2000

• useful release: 2010/4(Rakudo Star)

• Christmas release: 2015
Perl6 は安定したの
か?
A. していない
Perl6 は⾼高速になった
のか?
A. なっていない
しかし、Parrot → MoarVM で⾼高速化
成功している。
Perl6 で Web application
開発はできるのか?
A. できる
詳細は YAPC::Hokkaido の資料料を参照
https://www.slideshare.net/
tokuhirom/perl6-web
Perl6 Web Development
and Specs
• Perl5 のときは PSGI があった

• Perl6 では??
P6W
P6W とは……?
• https://github.com/zostay/P6W

• ほとんどこの⼈人が⼀一⼈人でやってるっぽい

• ゴールは PSGI と同じ

• 対応している実装はあんまない
HTTP::Server::Tiny
• もともと PSGI をサポートしていた

• ↓

• P6W にサポートさせてみた
Yapc fukuoka crust
P6W の階層構造
• Layer 0: Server

• Layer 1: Middleware

• Layer 2: Application
http://blogs.perl.org/users/jakob/2012/09/the-joy-of-psgi-middleware.html
⼊入出⼒力力
• ⼊入⼒力力は Associative(Hash-ish object)

• global capabilities

• configuration information

• per-request information

• 出⼒力力は Supplier
コード例例
sub app(%env) {
start {
200,
[ Content-Type =>
'text/plain' ],
[ 'Hello World!' ]
}
}
とはいえ
• 直接 P6W を触る必要はあんまない

• そう、Crust ならね。
Crust ?
• Plack for Perl6

• P6W support
Static contents support
• Crust::App::File

• Crust::App::Directory

• Crust::App::URLMap
Utils
• Crust::Builder

• Crust::Headers

• Crust::MIME

• Crust::Request::Upload

• Crust::Request

• Crust::Response
• Crust::Runner

• Crust::Test::MockHTTP

• Crust::Test

• Crust

• HTTP::Message::PSGI
Middlewares
Crust::Middleware::AccessLog

Crust::Middleware::Auth::Basic

Crust::Middleware::Conditional

Crust::Middleware::ContentLength

Crust::Middleware::ErrorDocument

Crust::Middleware::Lint
Crust::Middleware::ReverseProxy

Crust::Middleware::Runtime

Crust::Middleware::StackTrace

Crust::Middleware::Static

Crust::Middleware::XFramework
まとめ
• Perl6 の Web 開発の雰囲気をシェアしました

• P6W ってものがある

• Crust ってものがある
1 of 24

More Related Content

What's hot(20)

Spring知っておきたいSpring知っておきたい
Spring知っておきたい
Yuichi Hasegawa4K views
Application BootstrapApplication Bootstrap
Application Bootstrap
Takafumi ONAKA2.6K views
JavaからScalaへJavaからScalaへ
JavaからScalaへ
takezoe8.7K views
Spring Day 2016 springの現在過去未来Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa11.8K views
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99
Katsuya Shimizu1.3K views
先取り!PHP 7 と WordPress先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara31.6K views

More from Tokuhiro Matsuno(20)

20190126 yapc tokyo keynote 20190126 yapc tokyo keynote
20190126 yapc tokyo keynote
Tokuhiro Matsuno9.1K views
Plenv and perl build, and search.cpan.orgPlenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.org
Tokuhiro Matsuno1.3K views
Perl6 と web 開発とPerl6 と web 開発と
Perl6 と web 開発と
Tokuhiro Matsuno910 views
Openjdk 入門してみた話Openjdk 入門してみた話
Openjdk 入門してみた話
Tokuhiro Matsuno3.2K views
Perl6 web-appPerl6 web-app
Perl6 web-app
Tokuhiro Matsuno2.3K views
Perl6 meets JVMPerl6 meets JVM
Perl6 meets JVM
Tokuhiro Matsuno5.1K views
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets Java
Tokuhiro Matsuno4.3K views
Java web application testingJava web application testing
Java web application testing
Tokuhiro Matsuno7.7K views
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and Testing
Tokuhiro Matsuno5.1K views
Devel::NYTProf::ApacheDevel::NYTProf::Apache
Devel::NYTProf::Apache
Tokuhiro Matsuno1.8K views
ArcherArcher
Archer
Tokuhiro Matsuno3.7K views
MySQL::NameLockerMySQL::NameLocker
MySQL::NameLocker
Tokuhiro Matsuno1.5K views
Inside MFInside MF
Inside MF
Tokuhiro Matsuno1.1K views
Web Application FLowWeb Application FLow
Web Application FLow
Tokuhiro Matsuno1K views
madeye agentsmadeye agents
madeye agents
Tokuhiro Matsuno1.1K views

Recently uploaded(8)

Yapc fukuoka crust