awesome-racket

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

Build Status Awesome

awesome-racket - A curated list of awesome Racket language | Product Hunt

Check the complete package list

The Racket repository

Contents

Audio and Music

Libraries for manipulating audio.

  • 3s - Positional sound and mixing for lux and other applications.
  • RSound - A framework for manipulating and playing sounds using the portaudio library. Runs on Windows, Mac OS X, and linux.
  • 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.
  • 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.

Compilers

Tools for compiling Racket to other languages.

  • abstract-compilation - DSL reducing boiler plates for doing abstract compilation.
  • disassemble - Disassembler for Racket.
  • lens - A Racket package for creating and composing pure functional lenses.
  • minipascal - MiniPascal as a Racket language.
  • 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.
  • wasm-adventure - A WebAssembly DSL.
  • whalesong-tools - DrRacket tool for compiling with Whalesong.
  • wracket - Lisp-like language to WebAssembly build with racket.
  • zordoz - Explorer for .zo bytecode files.

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.
  • gls - Generic Little (Object, Type, Anything, etc) System - multiple dispatch on types.
  • graph - Generic graph library.
  • opt - Optional and Either data type utilities. Provides util function for Typed Racket's Option type as well as defines an Either type.
  • 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.
  • rebellion - Dozens of well-documented modules to aid in general-purpose programming. Extensive. Includes multidict, range set, and much more.
  • try - A Typed Racket Try datatype and routines for computations that throw exceptions.

Database Drivers

Libraries for connecting and operating databases.

  • binary-class-dbf - Interface to *.dbf files (dBase, Foxpro, etc).
  • db - Database connectivity (main distribution).
  • dbm - An interface to UNIX dbm files using a libdbm FFI.
  • deta - A functional database mapper.
  • fra - Purely functional implementation of relational algebra.
  • mongodb - A native Racket interface to MongoDB & BSON.
  • rackdis - Redis bindings.
  • racquel - Racquel is an object/relational mapper for Racket.
  • redis - A redis client 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.

Emulators

Racket programs emulating other computers and architectures

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

GUI Development

Libraries for cross platform GUI development

Game Development

Awesome game development libraries.

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

Games

Games written in Racket

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

Images

Libraries for manipulating images.

  • png-image - Library to view and modify PNG chunks.
  • racket-jpeg - JPEG parsing, transformation, and codec library for Racket.
  • simple-qr - a qr code tool for racket-lang.
  • video - Video is a DSL for describing videos.

Machine Learning

Libraries for Machine Learning.

  • DeepRacket - A simple starting point for doing deep learning in Racket.
  • layer - Neural network inference the Unix way.
  • racket-knn - K Nearest Neighbors, KNN, is a lazy, supervised machine learning algorithm. This is an implementation in scheme using racket.
  • racket-ml - A collection of things I found useful for doing Machine Learning problem sets.
  • 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.

Macros

Awesome macros that make your life easier

  • anaphoric - Anaphoric macros for Racket.
  • threading - Macros to flatten nested function calls.

Messaging

Libraries that implement messaging systems.

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

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, etc) for Racket.
  • racket-ovh - Unofficial Racket wrapper for OVH API.
  • recaptcha - Utilities for using reCAPTCHA with the web-server/formlets API.

Testing

Libraries for testing codebases and generating test data

  • RackUnit - RackUnit is a unit-testing framework for Racket. It is designed to handle the needs of all Racket programmers, from novices to experts.
  • al2-test-runner - alternate rackunit test runner.
  • cover - a code coverage tool for racket.
  • test-more - A Racket version of Perl's Test::More library.

Web Frameworks

Full stack web frameworks.

  • HoLy - HoLy is simple a HTTP-server Library for Racket.
  • Rackt - An ultrasmall (~70 loc) React wrapper written in RacketScript.
  • Routy - Routy is a lightweight high performance HTTP request router for Racket.
  • Spin - Write RESTful web apps in Racket.
  • frog - Frog is a static blog generator implemented in Racket, targeting Bootstrap and able to use Pygments.
  • koyo - A web development toolkit for Racket.
  • polkadot - A lightweight personal wiki in Racket.
  • racket-request - Package for simplifying HTTP requests and writing integration tests of REST-ful APIs in Racket.
  • riposte - Scripting language for testing JSON-based HTTP APIs.
  • vela - Simple web framework to build RESTful app in Racket.
  • web-galaxy - A minimalist web framework for the Racket web-server.
  • web-server/servlet - Running Web Servlets describes how to run the servlets you’ve written.