Useful packages for web devel
The Racket ecosystem has all sorts of utilities that will help you with web development. Here are some of my favorites. This may not be a complete list, but it is an honest attempt to list packages that are good to know about for web development in Racket, even if you don’t need them.
Acknowledgments Thanks to , Greg Hendershott , and Annaia Danvers for helping! Credit also goes to Sage Gerard Awesome Racket for maintaining a very extensive curated list of Racket packages covering all sorts of areas (not just web programming).
Here are some bundles of web goodness that help round out the overall Racket web experience.
HoLy Simple HTTP library for creating your web applications and REST APIs easier. koyo Full-featured web framework routy Lightweight high-performance HTTP request router spin Write RESTful web apps ( → unofficial demo) vela Simple web framework to build RESTful apps web-galaxy A minimalist web framework Generating, querying, and parsing XML and HTML
X-expressions (xexprs) are a widely used representation of HTML found in various libraries and in the core of the Racket web server. It stemps from a time before HTML5, but it works just fine.
gillette XPath for Racket html-parsing Parse HTML html-writing Serialize HTML laramie HTML5 parser txexpr Convenience functions for X-expressions xe Xexpr XML utilities, plus traversal and filtering xexpr-path XML Expression Path Lookup CSS css-expr CSS, the Lisp way (S-expressions) css-tools Tools for generating & manipulating CSS HTTP
Racket comes with
an HTTP client that may work just fine for your purposes. If you’re looking for something with a bit more flexibility and power, try these options. http-easy Simple HTTP client http123 HTTP client (supports HTTP2) racketmq W3C WebSub rfc6455 Handling Web Sockets scgi (Simple) Common Gateway Interface (SCGI/CGI) JSON
Racket comes with a representation for JSON called
ecmascript Parser, runtime and
#lang for ECMAScript
It’s (probably) not enough to just fire up a dispatcher/servlet. You need to manage all sorts of other stuff around your application.
aws Connect to Amazon Web Services (AWS) dotenv Extend the environment by loading files envy Environment variable manager reloadable Support for code-reloading for long-running racket programs (such as web servers) Testing marionette Control Firefox via the Marionette Protocol request Constructing HTTP and REST-ful requesters and integration tests riposte Scripting language for black-box testing JSON-based HTTP APIs
Miscellaneous and web-adjacent
Stuff that doesn’t belong in any of the other buckets above.
forms Handling web form(let)s rapider Web scraping framework