Awesome Racket


A curated list of Awesome Racket, libraries and software. Inspired by awesome-go.

Check the complete package list: The Racket repository:


Web Frameworks

Full stack web frameworks.

  • web-server/servlet - Running Web Servlets describes how to run the servlets you’ve written.
  • Spin - Write RESTful web apps in Racket.
  • Routy - Routy is a lightweight high performance HTTP request router for Racket.
  • HoLy - HoLy is simple a HTTP-server Library for Racket.
  • web-galaxy - A minimalist web framework for the Racket web-server.
  • vela - Simple web framework to build RESTful app in Racket.

Game Development

Awesome game development libraries.

  • mode-lambda - Sprite-based 2D graphics engine.
  • get-bonus - An experimental video game development environment.
  • game-engine - Scratchpad for racket game stuff.
  • pict3d - A 3D engine with a purely functional API.
  • vr-lang - Racket Lang for Virtual Reality (Aframe).
  • towers - Towers is an original 2-player board game.
  • apse - A Pixel Sprite Editor.


Games written in Racket

  • web-sweeper - Stateless Server Side Mine Sweeper.
  • space-invaders - A Racket remake of Mary Rose Cook's JavaScript version of Space Invaders.
  • Racket games - games in main distribution.

GUI Development

Libraries for cross platform GUI development

Audio and Music

Libraries for manipulating audio.

  • 3s - Positional sound and mixing for lux and other applications.
  • libopenal-racket - Racket wrapper to the OpenAL library first written by gcr in 2012.
  • midi-readwrite - Library to read .mid files in racket
  • openal - FFI for OpenAL.
  • osc - Open Sound Control data definitions.
  • portaudio - Bindings for portaudio, a cross-platform audio library.
  • rsc3 - SuperCollider client ported to Racket.
  • RSound - A framework for manipulating and playing sounds using the portaudio library. Runs on Windows, Mac OS X, and linux.
  • rtmidi - Provides racket bindings for the RtMidi library, thus enabling racket programs to send and receive MIDI events.
  • sonic-pi - For now, this package starts scsynth just like sonic pi does, and can make a few sounds.
  • taglib - Bindings to the taglib C library, which provides simple access to audio file metadata.
  • wavelet-transform-haar-1d - A library to perform forward and reverse 1-d Haar Wavelet transforms.


Racket tools for working with videos

  • video - Video is a DSL for describing videos.


Tools for compiling Racket to other languages.

  • racketscript - A lightweight Racket to JavaScript compiler with some batteries included.
  • urlang - Write JavaScript with Racket syntax. Bonus: Use Racket to define macros for JavaScript constructs.
  • whalesong-tools - DrRacket tool for compiling with Whalesong.
  • abstract-compilation - DSL reducing boiler plates for doing abstract compilation.
  • minipascal - MiniPascal as a Racket language.
  • zordoz - Explorer for .zo bytecode files.
  • wasm-adventure - A WebAssembly DSL
  • wracket - Lisp-like language to WebAssembly build with racket.


Racket programs emulating other computers and architectures

  • 6502 - An emulator/assembler/disassembler for 6502.
  • virtual-mpu - Universal Emulator & Assembler for Old Microprocessors.

Data Structures

Generic datastructures and algorithms.

  • algebraic - Algebraic structures for untyped Racket.
  • dssl - Data Structures Student Language: an extension of ASL for easier imperative programming.
  • dssl2 - A language for data structures students.
  • opt - Optional and Either data type utilities. Provides util function for Typed Racket's Option type as well as defines an Either type.
  • try - A Typed Racket Try datatype and routines for computations that throw exceptions.
  • gls - Generic Little (Object, Type, Anything, ...) System - multiple dispatch on types.
  • graph - Generic graph library.
  • phc-adt - Algebraic Data Types for Typed/Racket, with features tailored to compiler writing. The data types do not have to be declared before they are used, like prefab structs and symbols. Behind the scenes, this library remembers all the data types in a file, and uses it to implicitly pre-declare them. Mostly stable, although some things may change a bit in the future.
  • quad-tree - A fairly simple quad-tree implementation. Nothing terribly fancy. Currently rather unstable.

Third-party APIs

Libraries for accessing third party APIs.

  • aws - Amazon Web Services including S3, SDB, SES, SNS, SQS, CloudWatch, Glacier, Dynamo, and Route 53.
  • aws-cloudformation-deploy AWS Cloudformation deployment scripting library.
  • comm-panel - Racket GUI widget for sending, receiving, listening, and broadcasting strings over AWS SQS.
  • google - Google APIs (Drive, Plus, ...) for Racket.
  • recaptcha - Utilities for using reCAPTCHA with the web-server/formlets API.
  • racket-ovh - Unofficial Racket wrapper for OVH API.

Machine Learning

Libraries for Machine Learning.

  • rml-core - This Package is part of an expected set of packages implementing machine learning capabilities for Racket. The core of this package is the management of 'datasets', these datasets are assumed to be for training and testing of machine learning capabilities.
  • rml-decisiontrees - This Package is part of a set of packages implementing machine learning capabilities for Racket. This particular package implements support for classification of individuals using decision trees.
  • rml-knn - This Package is part of a set of packages implementing machine learning capabilities for Racket. This particular package implements the K-Nearest Neighbor approach for classification.
  • tesseract - Bindings for Google's Tesseract-OCR.

Database Drivers

Libraries for connecting and operating databases.

  • db - Database connectivity (main distribution).
  • mongodb - A native Racket interface to MongoDB & BSON.
  • binary-class-dbf - Interface to *.dbf files (dBase, Foxpro, ...).
  • dbm - An interface to UNIX dbm files using a libdbm FFI.
  • fra - Purely functional implementation of relational algebra.
  • redis - A redis client for Racket.
  • rackdis - Redis bindings
  • racquel - Racquel is an object/relational mapper for Racket.
  • sql - an S-expression notation for SQL.
  • sqlite-table - A quick way to create and query sqlite tables. Basically a simplified wrapper for a subset of the db library.


Libraries that implement messaging systems.

  • zmq - Minimal Racket ZeroMQ Bindings.
  • zeromq-r - Bindings for ZeroMQ.
  • stomp - STOMP messaging protocol codec and client.
  • neuron-lib - Implementation of neuron.
  • profj - Kathy Gray's ProfessorJ language ported to modern DrRacket.


Awesome macros that make your life easier

Support on Beerpay

Hey dude! Help me out for a couple of 🍻!

Beerpay Beerpay