Racket Documentation
Search Manuals
Release Notes
Report a Bug

Racket Documentation

This is an installation-specific listing. Running raco docs (or Racket Documentation on Windows or Mac OS) may open a different page with local and user-specific documentation, including documentation for installed packages. Searching or following a “top” link will go to a different starting point that includes user-specific information. [Go to user-specific start] [Forget user-specific start]

Getting Started

Racket Cheat Sheet



  Quick: An Introduction to Racket with Pictures

  Continue: Web Applications in Racket

  More: Systems Programming with Racket


Racket Language and Core Libraries

  The Racket Guide

  The Racket Reference


  Package Management in Racket

  The Racket Drawing Toolkit

  The Racket Graphical Interface Toolkit

  The Racket Foreign Interface

  Scribble: The Racket Documentation Tool

  DrRacket: The Racket Programming Environment

  raco: Racket Command-Line Tools


  Building, Distributing, and Contributing to Racket

  How to Program Racket: a Style Guide



  How to Design Programs

  How to Design Programs Languages

  How to Design Programs Teachpacks


  Essentials of Programming Languages Language

  Programming Languages: Application and Interpretation

  Picturing Programs Teachpack

  Sprachebenen und Material zu Schreibe Dein Programm!


Other Languages in the Racket Environment

  The Typed Racket Guide

  The Typed Racket Reference

  R6RS: Scheme

  Datalog: Deductive Database Programming

  The Heresy Programming Language


  The Pie Reference

  The Pie à-let-mode Reference

  PLAI Typed Language

  Plait Language

  Plaitypus Language

  ProfessorJ: Java in Racket

  remix - a revised version of Racket

  Rash: The Reckless Racket Shell


  How to Design Classes Languages

  PLAI Lazy



  Detail: a log tool

  Pure-Crypto: a pure crypto implementation for racket


  Simple-Barcode: Barcode reader and writer

  Simple-Qr: QR-Code Writer and Reader

  Simple-Xlsx: Open Xml Spreadsheet(.xlsx) Reader and Writer

  Web Applications in Racket


  Cover: A test coverage tool

  Files-viewer: a file manager plugin for DrRacket

  raco fc: Finding Collections

  Futures Visualizer

  Molis Hai: Natural Language Password Generation

  PLaneT: Automatic Package Distribution

  Portaudio: Bindings for the Portaudio portable sound library

  Quickscript, a scripting plugin for DrRacket

  Racklog: Prolog-Style Logic Programming

  Redex: Practical Semantics Engineering

  AWS S3 Synchronization

  Scribble as Preprocessor

  Slideshow: Figure and Presentation Tools


  The Unicoder

  Fast 1-D Haar Wavelet Transform

  Web Server: HTTP Server


  DrRacket Plugins


  DrRacket Tools


GUI and Graphics Libraries

  Framework: Racket GUI Application Framework

  Pict: Functional Pictures

  Pict Snip: Build Snips from Picts


  Browser: Simple HTML Rendering

  Cards: Virtual Playing Cards Library

  charterm: Character-cell Terminal Interface

  Embedded GUI: Widgets Within Editors

  Games: Fun Examples

  GL Board Game: 3-D Game Support

  icns: Apple Icon Files


  libnotify: an FFI binding for libnotify

  Pict3D: Functional 3D Scenes

  Plot: Graph Plotting

  Rilouworld: Decentralized Game Universe

  Package rml-neural.

  RSound: A Sound Engine for Racket

  RSVG: an FFI binding for loading SVG images

  Scratchy: A Scratch-like Toy

  MrLib: Extra GUI Libraries

  Turtle Graphics

  GL: 3-D Graphics

  String Constants: GUI Internationalization

  Syntax Color: Utilities


Network Libraries

  ASN.1: Abstract Syntax Notation One

  csexp: S-expressions over the network

  Distributed Places

  html-writing: Writing HTML from SXML



  Mumble Ping

  OpenSSL: Secure Communication

  OSC: Open Sound Control Byte String Conversion



  SASL: Simple Authentication and Security Layer

  Net: Networking Libraries

  Windows Native SSL: Secure Communication

  Mac OS Native SSL: Secure Communication

  Unix Domain Sockets

  SSH: The Secure Shell Protocol




Parsing Libraries

  Binary-class: parsing and saving binary data

  Binary-class/mp3: parsing ID3v2.1 and ID3v2.2

  Resource Interchange File Format (RIFF)

  WAVE File Format (WAV)

  Parser Tools: lex and yacc-style Parsing (BR edition)

  csv-reading: Comma-Separated Value (CSV) Parsing

  HTML: Parsing Library

  html-parsing: Permissive Parsing of HTML to SXML



  json-parsing: JSON Parsing, Folding, and Conversion

  Racket MIDI reader

  Parser Tools: lex and yacc-style Parsing

  PSD: Read and Write Photoshop Documents

  File: Racket File and Format Libraries

  Megaparsack: Practical Parser Combinators

  Sparse: Test Generation for Simple S-expression Language Parsers

  XML: Parsing and Writing

  XML: Namespaces



Tool Libraries

  choose-lang: Pick #lang at read-time

  Choose-out: Conditional Provide

  Dynext: Running a C Compiler/Linker

  GLPK: The Gnu Linear Programming Kit


  Macro Debugger: Inspecting Macro Expansion

  Make: Dependency Manager

  Intercepted Logging


  Overeasy: Racket Language Test Engine

  Pict Abbrevs

  Readline: Terminal Interaction

  Scribble Abbrevs

  Errortrace: Debugging and Profiling

  Trace: Instrumentation to Show Function Calls

  SLaTeX Wrapper

  Source Syntax

  Test Support

  Version: Racket Version Checking


  XREPL: eXtended REPL



Low-Level APIs

  Inside: Racket C API



  MzCOM: Racket as a Windows COM Object

  Unicode Chars







  Taglib Bindings for Racket



  GTP Benchmarks





Compression and Decompression



Data Structures

  Arguments Structures

  Data: Data Structures

  Simple, Deterministic Dictionaries

  Simple, Deterministic Sets

  Immutable Hash Array Mapped Tries

  Leftist Trees

  Functional Data Structures in Typed Racket

  Ring Buffers

  Functional generic interfaces

  Semi-persistent Matrices

  Semi-persistent Vectors





  Functional Relational Algebra




  DB: Database Connectivity


Date, Time, and Calendar Libraries



Digital Ricœur

  pydrnlp: NLP Library for Digital Ricœur

  Digital Ricœur TEI Library

  TEI Encoding Guidelines for Digital Ricœur



  Mutt API



  Syntax Parse Examples



  mode-lambda: the best 2D graphics of the 90s, today!





Localization and Internationalization

  CLDR BCP47 Time Zone Data

  CLDR Locale Names for Modern Locales

  CLDR Numbers for Modern Locales

  CLDR Core

  CLDR Dates for Modern Locales


Math and Science

  Math Library



  Job Queue



  pmap : Parallel map



  live-free-or-die: Freedom from Typed Racket



Performance Tools


  Feature-Specific Profiling

  Optimization Coach

  Profile: Statistical Profiler

  Contract Profiling



  Slideshow LaTeX

  puresuri: the king of presentations





Resource Management

  Disposable Values


Scribble Libraries

  acmsmall support for Scribble

  Hyper-literate programming

  LIPIcs support for Scribble

  Scribble Enhanced

  Scriblib: Extra Scribble Libraries



  Scripty: Distributable shell scripts with dependencies


Slideshow Libraries

  Progressive Picts and Slides

  slideshow-text-style: a small library to improve text formatting in slideshow

  Staged Slides


Syntax Extensions

  2D Syntax

  Mark Parameters

  Static Renaming

  More Syntax Classes

  struct-define: Short-hand accessors for struct fields

  Syntax: Meta-Programming Helpers



  Regex Machine Language



  lux-charterm: amazing terminal programs



  rackunit-chk: a short hand for writing rackunit tests

  Expect: First Class Assertions

  Test Fixtures for RackUnit


  Mock RackUnit Checks

  RackUnit: Unit Testing

  RackUnit Abbrevs



  DOS: Delimited-continuation-based Operating-system Simulator

  lux: brilliant interactive programs

  raart: Racket ASCII Art and Interfaces



  Temporal Contracts: Explicit Contract Monitors



  Trivial: type-tailored library functions

  Type expander library

  Type expander: Implementation

  Type inference helper for map

  Struct type properties for Typed/Racket

  Typed worklist


Miscellaneous Libraries

  SRFIs: Libraries

  SRFI Nonfree Libraries and Documentation


  Русский язык программирования


  3D Model Library


  agatha: Para Logica



  Packrat: Simple Packrat Parsing




  _-exp: Configurable Scribble-like Syntax

  ACL2s Beginner Mode

  Adapton: Composable, Demand-Driven Incremental Computation

  Adjutor: A Helper Library




  al2-test-runner – Alternative way of running rackunit test suites

  alexis/util: Filling in the Gaps

  Legacy Persistent Vectors

  Multicast Asynchronous Channels

  Legacy Generic Collections

  Lenses for Generic Collections

  The Algebraic Racket Collection



  Anaphoric conditionals

  Anarki: Community-Managed Arc Variant



  Advent of Code: solutions & explanations

  Using AppVeyor with Racket Projects

  Argo: JSON Schema Adventures


  Racket Assembler





  Automata: Compiling State Machines

  AVL Trees

  Amazon Web Services

  #lang axe




  XDG Basedir Library

  Behavioral Models

  bencode: BitTorrent Bencode Decoding


  binaryio: Functions for Reading and Writing Binary Data

  Racket Binutils




  Bookcover: Generating PDFs for book covers

  Beautiful Racket

  brag: a better Racket AST generator


  Brush: Literate Programming Without Tangling

  Script: Testing Bitcoin Riddles

  buid: universally unique lexicographically sortable identifiers


  C Metaprogramming Utilities

  C Constants


  canonicalize-path: Filesystem Path Canonicalization



  ccnum: Credit Card Number Utilities

  Chaining module languages


  Chido Parse

  chk: a minimal tester




  Lenses for Generic Collections

  colon-kw and kw-colon




  colormaps – Additional Colormaps for the Racket Plot Package


  Extensible Command Line


  Compact Annotations

  Compiler Goodies


  Function Composition Syntax


  cond: what it should have been

  Elementary Continued Fraction Arithmetic Package


  Cookies: HTTP State Management

  country: ISO country database

  cpu-affinity: an FFI binding for getting/setting CPU affinity

  cpuinfo: CPU Information


  Crypto: Cryptographic Operations



  CS7480 Utilities

  Constraint-satisfaction problems (and how to solve them)






  CueCore Lighting Control


  custom-load: Cautious Bytecode Loaders

  Package dali

  Dan Scheme

  Semi-Persistent Arrays

  Persistent Vectors

  Set: Purely Functional Sets


  Database URL Parser





  Debuging scope-related issues



  Deferred: a simple library for doing things later




  Simple Function Specifications


  Delimiter-Sensitive Application

  Derpy: Presentation Room Control


  deta: Functional Database Mapping

  Diagrama: A diagram drawing library


  Lorem Ipsum

  Building Distributions of Racket

  Delimited Reading

  Device Mapper

  Documentation Coverage



  Dotted identifiers and λ<arg>.code syntax


  Racket Dropbox SDK

  drracket-cmdline-args: Accessible Command-Line Arguments for DrRacket

  Reading Writing ".DS_Store" Files

  DSSL: Data Structures Student Language

  DSSL2: Data Structures Student Language

  Dynamic FFI

  Translate X-Expressions to Keyword Procedure Applications

  While loops for Racket


  EBML: A binary encoding format

  Elliptic Curves



  ELF Library

  Emoji: emoji terminal output for Racket


  Envy: An environment variable manager


  Epson Projector Control



  Extensible Functions


  Fancy App: Scala-Style Magic Lambdas

  Fast-convert: fast and easy conversion from bytes to string

  Fast Sequence

  ffi-definer-convention: augments define-ffi-definer

  Monitoring file system activity with file-watchers

  Finalizer: trivial finalization

  Expressions rendered as both XML and JSON

  Flomat: Floating Point Matrices

  Fourier-Motzkin Elimination for Integer Systems



  Forms: Web Form Validation









  G-code Tools

  gdbdump: GDB-based Native Thread Backtrace Dumps

  Generator Utilities

  Racket Generic Binding Forms

  Generic Syntax Expanders

  geoid – Efficient storage and queriying of geographic data




  GObject Introspection


  Glass: Composable Optics

  GMB’s Lambda Calculus


  OpenGL Mathematics (GLM) for Racket


  GLS: Generic Little System

  The OpenGL Shading Language 4.5 (GLSL)

  Tessellation via GLU

  GMP: Multi-precision Arithmetic


  Goblins: a transactional, distributed actor model environment


  Racket Generic Graph Library

  Graphics Engine

  Gregor: Dates and Times

  GNU GSL Numerical Integration

  GNU GSL Random Number Generation

  GTP Checkup

  GTP measure

  GTP pict

  GTP utilities


  Enumerating Haiku


  Define Private Keys in a Hash using a Struct-Like Interface

  Bug Reporting

  Help and Documentation Utilities


  hostname: Getting Hostname, FQDN, and IP Addresses

  Implementing HtDP Teachpacks, Libraries, and Customized Teaching Languages

  htdp-json: A JSON library for use with HtDP

  html-examples: Examples in HTML

  html-template: HTML-Writing Template Language in SXML



  http-easy: a high-level HTTP client





  Making reader extensions hygienic



  Idiocket: A Self-Aware Junk Drawer


  Utilities for Manipulating Directories


  Infix Expressions for Racket


  Interactive Brokers API


  Interface-Oriented Programming for Classes

  IRacket: Racket Kernel for Jupyter

  IRC Client Library

  IRC Client: High-Level IRC API

  Indiana University pict

  J in Racket

  JavaScript for PLT Scheme

  The jen Library

  Voxel Programming

  json-pointer: Referring to bits of JSON


  JSON Web Token (JWT) and JSON Web Signature (JWS)


  keyring - a library for uniformly accessing secrets

  Expressive Functional Reactive Programming (Kinda)

  kitco: Precious Metals Market Info. Access

  koyo: Web Development Toolkit



  Keyword Utils



  A picture showing all the languages used to implement Racket.


  Scribble + LaTeX utils

  Lathe Comforts

  Lathe Morphisms

  Lathe Ordinals

  Lightweight, Lazy Trees

  ldap-ffi: a Racket LDAP client built on top of libldap C API


  levenshtein: Levenshtein Distance Metric

  Libgit2: Bindings for the libgit2 git library

  OpenAL: Bindings for the OpenAL sound library

  libserial: Portable Serial Port Access



  libxml2: Bindings for XML Validation

  #lang lindenmayer, a language for L-Systems



  List utilities


  Package racket-locale




  loop: advanced named let



  Magenc Magnet URIs: Secure Object Permanence for the Web


  A Racket GUI Widget to display maps based on OpenStreetMap tiles

  The Margrave Tool for Policy Analysis


  Extra Utilities for match



  Units and Measurements

  mediafile: Media File Metadata Utilities

  Medic Debugger

  memo: Memoization with cache and finalization control

  Memoize: Lightweight Dynamic Programming



  Creating Mind Maps in Racket

  MiniKanren: logic programming in Scheme

  Miscellaneous Utilities

  Mischief: a Racketeer’s Toolkit



  monotonic: monotonic clock for Racket



  MessagePack-RPC Client for Racket


  Polyvalent identifiers with multi-id

  Multipath Daemon API



  my-cond/iffy with sweet-exp


  Nanopass Framework



  Write Large CLIs Easily



  IP Addresses

  Net2: Evolved Networking Libraries


  Neuron: Decentralized Software Organisms



  north: Database Migrations


  numformat-old: Number Formatting

  numspell: Spelling Numbers as English

  Neovim client for Racket








  Package Analysis


  Parameter Utilities

  Paren-shape Pattern Expanders


  Package parquet.

  Parsec implementation in Racket

  parted: Interface to GNU Parted Disk Partion Utility


  pdf-read: Read and render PDF files


  Peony Web Framework


  Apollo Art PEx Power Control

  PGMP: Profile-Guided Meta-Programming


  Text and Paths for Pict3D


  Pinyin: Convert Hanzi to Pinyin

  Data Pipes (Iteratees)

  Package Management GUI Libraries

  Pkg-Build: Building and Testing All Racket Packages

  Package Dependency Graph Visualization

  Place Controllers

  Automated Planning


  Bestfit: Lines of Best Fit

  plot-container – Embed plot snips to GUI applications

  PLT Service Monitor

  Creating PLT-Style Web Pages

  png-image: Library to view and modify PNG chunks.


  Pollen: the book is a program

  McGill-style citations for Pollen

  Pollen Component


  Pollen-rock: a RESTful Pollen Server

  Pollen sample project: Typography for Lawyers

  Pollen sample project: Tufte CSS

  Polyglot: A Guide for Building Websites With Any Language

  Polyglot: API Reference

  Polysemy: support for polysemic identifiers

  Pattern Matching for Ports




  postnet: USPS POSTNET Barcode Encoding


  PPrint: A Universal Pretty-Printer


  Pretty-printing with format strings



  progedit: Programmatic File Editing

  protobj: Prototype-Delegation Object Model


  Puzzler: A Language for 2D Puzzle Game Creation


  python-tokenizer: a translation of Python’s tokenize.py library for Racket


  qtOps: perform operations on things with qualities

  Quad: document processor



  Scripts from the Quickscript Competition July 2020

  Quickscript Extra


  quote - bad

  R-cade Game Engine

  R Lexer

  rackcheck: property testing


  racket-cord: Racket discord library


  Racket Graphviz Integration

  Racket Language Server



  (eighth RacketCon) Workshop: Web Programming

  RacketUI: Automated Web UI Generator


  rackonsole: Lightweight Operator Console for Server Processes

  RackUnit Grade

  RackUnit Spec: BDD interface for RackUnit

  Racquel: An Object/Relational Mapper for Racket


  ragg: a Racket AST Generator Generator

  RaList: Purely Functional Random-Access Lists

  Ranked Programming


  Reactor: a synchronous reactive language


  data-red-black: augmented red black tree structures

  An Introduction to Redex with Abstracting Abstract Machines (v0.6)

  Redex Miscellanea

  Redex Parameters

  Generic Relations

  Remember: storage for macros which is persistant across compilations

  Remote Shells and Virtual Machines

  Repeated application

  REPL test: copy-paste REPL interactions to define tests




  Retry: Retrying Arbitrary Computations

  rex: deterministic regular expressions

  rfc3339-old: RFC 3339 Timestamps

  RFC 6455 WebSockets for Racket

  Riposte—Scripting Language for JSON-based HTTP APIs


  Racket Machine Learning — Core

  Racket Machine Learning — Decision Trees

  Racket Machine Learning — K-Nearest Neighbors

  #lang rokit-racket

  Roman Numerals

  roomba: iRobot Roomba/Create Interface


  rparallel : Racket in parallel

  Reverse Polish Notation

  rs - the Racket Sequencer

  rs-l : Loop and event library for rs

  Ruckus: Procedural CAD For Weirdos

  Runomatic — Runo Client and Bot


  rws-html-template: Racket Web Server html-template Support

  SASS: Bindings to libsass


  Package racket-scaffold

  scgi: Web Server HTTP SCGI and CGI




  Scribble Examples Evaluator Forms



  scribble-slideshow: Using Scribble to Make Slides

  Better Grammar

  Handin Server

  Threading Macros

  Dynamic multiple dispatch

  Reader Function Literal Shorthand

  Generic Collections

  Purely Functional Struct Updaters

  Option Contracts

  The #%namespaced hook

  Interactive Evaluation in Slideshow

  Linea: line oriented reader

  PLAI Typed S-Sxpression Matching

  Scriblogify: Scribble Your Blogs

  Sdraw: Cons-Cell Diagrams with Pict


  Search Filesystem While Approaching Root Directory

  SECD: A reduced version.

  Semver: Semantic Versioning

  A Sentry SDK for Racket


  Serializing Syntax Introducers

  Set Expressions

  GUI ".plt" Installer


  Sfont: play with fonts in Racket

  SHA and SHA-2

  Shell Pipeline Package

  shlex for Racket: Simple lexical analysis

  shootout: Expression Performance Comparison

  SICP Collections



  Simple Matrix Arithmetic

  Package simple-oauth2.

  Simple Polynomials of One Variable

  Simple-Svg: Scalable Vector Graphics

  Simple Tree Text Markup: Simple Markup for Display as Text or in GUI



  Snappy: FFI bindings for fast compression

  Social Contracts

  soundex: Soundex Hashing

  Super Pipe

  SQL: A Structured Notation for SQL Statements


  SQLite Table

  Squicky: a quick wiki parser

  SS-RPC server

  stardate: compute the current TNG stardate

  The Stepper





  String to S-expression for Fundamentals I, 2016, Northeastern University


  Lightweight Stripe API Library

  Struct-type properties with a struct-like interface


  sudo: Sudo Command Processes

  Suffix trees with Ukkonen’s algorithm


  superv - A Supervisor Program

  Sweet: an alternative to s-expressions


  SXML: S-Expression Representation of XML

  SXML in Racket: Tools for XML and HTML

  Symbolic algebraic expressions

  Dataspace Programming with Syndicate

  2d Graphics with syndicate-gl

  Language creation

  Combining syntax classes together as multiple variants


  Counting Source Lines of Code

  Syntax Warnings

  SystemD Support

  T-Test: two popular functions

  Table Panel


  Task Server

  Racket Turtle

  Template Macros

  Tesira Client






  Package thrift.



  Todo List for DrRacket




  Turn-Based Games

  The turnstile language


  txexpr: Tagged X-expressions


  HtDP/2e Teachpacks for Typed Racket


  Typed-Stack: A Typed Racket stack library

  tzgeolookup – Lookup timezone names for geographic coordinates


  ulid: universally unique lexicographically sortable identifiers

  Unified for Loop


  Unlike Assets: Build Video Games, Websites, and Other Creative Projects

  URIs and URLs

  uri-old: Web URI and URL

  uri-template: A template language for URIs (IETF RFC 6570)

  uuid: Universally Unique Identifiers

  Functional Multi-Valued Computations

  Multiple and Keyword Return Values

  Vector Struct: Performant Fake Structs

  DrRacket Version Tool

  version-case: conditionally compile code based on current version number

  vlc: VideoLAN VLC Media Player Control

  Vulkan API Integration

  Web IO for Fundamentals I, 2016, Northeastern University

  webapi: Web APIs

  webscraperhelper: Generating SXPath Queries from SXML Examples

  Finding Racket Paths

  WordNet - A Lexical Database for English



  x64 Assembler

  Xenomorph: binary encoding & decoding

  XML Expression Path Lookup


  Xsmith’s Bundled Generators (And How to Run Them)

  4chan API Client Library


  ZeroMQ: Distributed Messaging

  Zippers for Racket

  Minimal ZeroMQ Bindings



Experimental Languages and Libraries

  FrTime: A Language for Reactive Programs

  Lazy Racket


  Algol 60





  iPoe: interactive poetry editor



  McFly Runtime: Embedded Package Documentation for Racket

  Ocelot: a solver for relational logic

  R-LINQ: .NET’s LINQ in Racket

  The Rosette Guide

  Super C

  Unstable: May Change Without Warning

  Unstable GUI: May Change Without Warning

  Unstable Flonums: May Change Without Warning

  Unstable Redex: May Change Without Warning


Legacy Languages and Libraries

  R5RS: Legacy Scheme

  Scheme: Compatibility Libraries and Executables


  Combinator Parser

  Compatibility: Features from Racket Relatives

  MysterX: Legacy Support for Windows COM

  MzScheme: Legacy Language

  mzpp and mztext: Preprocessors

  MzLib: Legacy Libraries

  Graphics: Legacy Library