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.


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