Hacker News new | ask | show | jobs
by gibsonf1 2269 days ago
We use it for the core of our AGI and our in-memory graph db in full production - very very fast. The web libraries for lisp are very good as well with Fukamachi libraries, such as [1] caveman and [2] woo (fastest web server), [3] dexador, [4] websockets, also [5] parallel processing, [6] rtg-math incredibly fast math library including quaternion support, etc.

[1] https://github.com/fukamachi/caveman [2] https://github.com/fukamachi/woo [3] https://github.com/fukamachi/dexador [4] https://github.com/fukamachi/websocket-driver [5] https://github.com/lmj/lparallel [6] https://github.com/cbaggers/rtg-math

2 comments

Thanks for the links. I had not noticed dexador before. I have it on my schedule this morning to re-work my network access libraries for an Azure web service, and also access to Wikidata and DBPedia. I have been using old code of mine that needs reworking. I will definitely try dexador.
I highly recommend it, dexador is much much faster than drakma
Thanks, I experimented with dexador yesterday, it looks good. I ended up adding a caching layer for all web service calls and SPARQL requests in my app yesterday - this makes dev and testing much faster, but won’t help much in production.
Sounds interesting, especially the SPARQL. What does your app do?
Agreed, but there are a couple of edge cases that drakma handles taht dexador doesn't.
Last time I checked, woo doesn't support TLS. Has that changed?
We took the simple solution of running haproxy to handle ssl, and then using a woo server behind that. This is that setup: https://graphmetrix.com
Given present day approach of using reverse proxies for TLS termination, that's not much of a limitation.
That's the solution I use with mod_lisp running behind Apache too, but I'd like to get away from Apache. I'll try haproxy.
HAproxy is really, really good.

Personally I also use nginx as reverse proxy a lot, but that's more because there's a ready to use Ingress Controller for kubernetes that uses it internally.