Clack: glue for web apps

27
Clack: glue for web apps Clack Meetup #1 Eitaro Fukamachi

Transcript of Clack: glue for web apps

Clack: glue for web apps

Clack Meetup #1 Eitaro Fukamachi

Thank you for coming.

I’m Eitaro Fukamachi @nitro_idiot fukamachi

Topics

• What’s Clack?

• As an Abstraction Layer

• As a composable rule

• History

Clack

• Web application environment

• Intended to be a basement of frameworks

• Abstracts web servers

• Composability

Clack

Clack

(clackup (lambda (env) ‘(200 (:content-type “text/plain”) (“Hello, World”))) :server :hunchentoot)

Clack

(clackup (lambda (env) ‘(200 (:content-type “text/plain”) (“Hello, World”))) :server :hunchentoot)

Application

Clack

(clackup (lambda (env) ‘(200 (:content-type “text/plain”) (“Hello, World”))) :server :hunchentoot)

Application

Web server to run the application on

Web server

Abstract web servers

Application

Web server Web server

Application Application

Web server

Abstract web servers

Application

Web server Web server

Application Application

Clack

Composability

ApplicationRequest Response

Middleware

Middleware

Composability

ApplicationRequest Response

• Middleware wraps an application

• Middleware can be reused

• ex) access log, session manager

“Middleware”

History

We lived 4 ages.

• asdf-install or clbuild (not reliable)

• GitHub wasn’t popular

• Posted a bug to mailing-lists

• Many projects are abandoned or inactive

• We couldn’t tell if a library works with other libraries

BQ (Before Quicklisp = the Stone Age)

• Quicklisp made installation of libraries really easier

• It make sure libraries can load at least

AQ (the Tool Age)

• Hosted on GitHub

• Has many tests

• Tested on Jenkins

• Has a documentation

Clack was out 4 years ago

• We had Clack & Caveman1

• We had Quicklisp

• No DBI, No ORM (CLSQL was terrible)

• Many projects were abandoned

• Clojure already had Ring

Clack (the Bronze Age)

• Hunchentoot, Weblocks, web4r, RESTAS

• Most WAF were built on top of Hunchentoot!!

• Is Hunchentoot reliable and everlasting?

Clack (the Bronze Age)

The Present Age

• We have ningle and Caveman2

• We have CL-DBI, SxQL, datafly and Integral

• We have Woo, a really fast web server

• We have CIM/Roswell and qlot

• Clack reached ver 1.0

• Moved many codes to an individual project

• Could reduce 1583 lines

• Made it stable

• Made it faster

• Started testing on

Clack v1.0

So, what’s next?

• We have everything we need to build a web application

• Just try.

• Looking for a Common Lisp job? We’re hiring!

The next move

Thanks.

EITARO FUKAMACHI 8arrow.org @nitro_idiot fukamachi