Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Yapc fukuoka crust

1,486 views

Published on

YAPC::Fukuoka 2017

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Yapc fukuoka crust

  1. 1. P6W に基づく Perl6 に於け る Web 開発の基礎となる Crust Tokuhiro Matsuno LINE Corporation Service Dev.1
  2. 2. 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.
  3. 3. LINE♡Perl
  4. 4. Perl6? • Perl 5 の後継?兄弟? • start at 2000 • useful release: 2010/4(Rakudo Star) • Christmas release: 2015
  5. 5. Perl6 は安定したの か?
  6. 6. A. していない
  7. 7. Perl6 は⾼高速になった のか?
  8. 8. A. なっていない しかし、Parrot → MoarVM で⾼高速化 成功している。
  9. 9. Perl6 で Web application 開発はできるのか?
  10. 10. A. できる 詳細は YAPC::Hokkaido の資料料を参照 https://www.slideshare.net/ tokuhirom/perl6-web
  11. 11. Perl6 Web Development and Specs • Perl5 のときは PSGI があった • Perl6 では??
  12. 12. P6W
  13. 13. P6W とは……? • https://github.com/zostay/P6W • ほとんどこの⼈人が⼀一⼈人でやってるっぽい • ゴールは PSGI と同じ • 対応している実装はあんまない
  14. 14. HTTP::Server::Tiny • もともと PSGI をサポートしていた • ↓ • P6W にサポートさせてみた
  15. 15. P6W の階層構造 • Layer 0: Server • Layer 1: Middleware • Layer 2: Application http://blogs.perl.org/users/jakob/2012/09/the-joy-of-psgi-middleware.html
  16. 16. ⼊入出⼒力力 • ⼊入⼒力力は Associative(Hash-ish object) • global capabilities • configuration information • per-request information • 出⼒力力は Supplier
  17. 17. コード例例 sub app(%env) { start { 200, [ Content-Type => 'text/plain' ], [ 'Hello World!' ] } }
  18. 18. とはいえ • 直接 P6W を触る必要はあんまない • そう、Crust ならね。
  19. 19. Crust ? • Plack for Perl6 • P6W support
  20. 20. Static contents support • Crust::App::File • Crust::App::Directory • Crust::App::URLMap
  21. 21. 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
  22. 22. 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
  23. 23. まとめ • Perl6 の Web 開発の雰囲気をシェアしました • P6W ってものがある • Crust ってものがある

×