louis's Blog

louis's Avatar Image
Software developer #Go #CommonLisp #JS #SQL. #LispWorks user. Soft spots for #Emacs #SmallWeb. Recently becoming #OpenBSD enthusiast. #LinuxMint as a daily driver. Recovering Apple addict.

Author of the Tuner app for Linux.

Other hobbies: #Running #FireFighter #StarTrek
← All posts

Ok, so I am building a REST API in Common Lisp, seriously this time!

Instead of struggling with a half-documented “framework”, all I need is:

  1. hunchentoot
  2. easy-routes
  3. postmodern
  4. com.inuoe.jzon

All of these are well documented.

Hunchentoot is mature and powerful. It took me a moment to discover how Context is realized via subclassing the request object.

With “easy-routes” defining request handlers and middleware (decorators) is straightforward.

Postmodern feels a bit bloated but provides full support for advanced PostgreSQL data types and connection pools (they should remove JSON serialization and ORM-like features to reduce dependencies).

I’m generating JSON response data directly in Postgres via to_json. No need to re-serialize it in the API.

Dev experience is great!

  1. No need to re-compile/restart for every change.
  2. Even though Common Lisp is not statically typed, SBCL is very good in deriving types and shouting at you in case you get things wrong.

#commonlisp

To like or reply, open original post on Emacs.ch