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


  How to Program Racket: a Style Guide



  Computational Thinking : CSC104 (Fall 2017)


  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 Die Macht der Abstraktion


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

  ProfessorJ: Java in Racket

  RASH: RAcket SHell Library

  The Hackett Programming Language

  The Video Language Guide


  How to Design Classes Languages

  PLAI Lazy



  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

  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

  Script Plugin for DrRacket

  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


  libnotify: an FFI binding for libnotify

  Pict3D: Functional 3D Scenes

  Plot: Graph Plotting

  RSound: A Sound Engine for Racket

  RSVG: an FFI binding for loading SVG images

  Scratchy: A Scratch-like Toy

  Turtle Graphics

  MrLib: Extra GUI Libraries

  GL: 3-D Graphics

  String Constants: GUI Internationalization

  Syntax Color: Utilities


Network Libraries

  Distributed Places

  html-writing: Writing HTML from SXML



  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



Parsing Libraries

  Binary-class: parsing and saving binary data

  Resource Interchange File Format (RIFF)

  WAVE File Format (WAV)

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

  Parser Tools: lex and yacc-style Parsing (Beautiful Racket 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

  File: Racket File and Format Libraries

  Megaparsack: Practical Parser Combinators

  Sparse: Test Generation for Simple S-expression Language Parsers


  XML: Namespaces

  XML: Parsing and Writing



Tool Libraries

  Dynext: Running a C Compiler/Linker

  GLPK: The Gnu Linear Programming Kit


  Macro Debugger: Inspecting Macro Expansion

  Make: Dependency Manager


  Overeasy: Racket Language Test Engine

  Readline: Terminal Interaction

  Scribble Abbrevs

  Trace: Instrumentation to Show Function Calls

  Errortrace: Debugging and Profiling

  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






  3s: positional audio and mixing


  Taglib Bindings for Racket


Compression and Decompression



Data Structures

  Arguments Structures

  Data: Data Structures

  Simple, Deterministic Dictionaries

  Simple, Deterministic Sets

  Finger Trees

  Immutable Hash Array Mapped Tries

  Leftist Trees

  Functional Data Structures in Typed Racket

  Algebraic Data Types for compilers

  Algebraic Data Types for compilers: Implementation

  Ring Buffers

  Functional generic interfaces

  Semi-persistent Matrices

  Semi-persistent Vectors





  Functional Relational Algebra




  DB: Database Connectivity

  Schema: Data Modeling for Typed Racket


Date, Time, and Calendar Libraries




  Mutt API



  Syntax Parse Examples



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





Localization and Internationalization

  CLDR BCP47 Time Zone Data

  CLDR Dates for Modern Locales

  CLDR Numbers for Modern Locales

  CLDR Core

  CLDR Locale Names 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

  Contract Profiling

  Profile: Statistical Profiler



  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

  stxparse-info: Track syntax-parse and syntax-case pattern vars

  Syntax: Meta-Programming Helpers



  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



  Temporal Contracts: Explicit Contract Monitors



  Pure functions and promises

  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


  3D Model Library






  _-exp: Configurable Scribble-like Syntax

  ACL2s Beginner Mode

  Adapton: Composable, Demand-Driven Incremental Computation

  Adjutor: A Helper Library



  alexis/util: Filling in the Gaps

  Multicast Asynchronous Channels

  Legacy Generic Collections

  Legacy Persistent Vectors

  Lenses for Generic Collections

  Anaphoric conditionals

  Anarki: Community-Managed Arc Variant

  Advent of Code: solutions & explanations

  Argo: JSON Schema Adventures

  Racket Assembler




  Automata: Compiling State Machines

  AVL Trees

  Amazon Web Services

  #lang axe


  XDG Basedir Library

  bencode: BitTorrent Bencode Decoding


  binaryio: Functions for Reading and Writing Binary Data

  Racket Binutils


  Beautiful Racket

  brag: the Beautiful Racket AST Generator

  Brush: Literate Programming Without Tangling

  C Metaprogramming Utilities

  C Constants


  canonicalize-path: Filesystem Path Canonicalization

  ccnum: Credit Card Number Utilities

  Chaining module languages


  chk: a minimal tester

  Lenses for Generic Collections

  colon-kw and kw-colon


  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

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

  cpuinfo: CPU Information

  Crypto: Cryptographic Operations


  CS7480 Utilities



  CueCore Lighting Control


  custom-load: Cautious Bytecode Loaders

  Dan Scheme

  Persistent Vectors

  Semi-Persistent Arrays

  Set: Purely Functional Sets



  Debuging scope-related issues

  Deferred: a simple library for doing things later


  Simple Function Specifications


  Delimiter-Sensitive Application

  Derpy: Presentation Room Control


  Digimon: Lorem Ipsum

  Building Distributions of Racket

  Delimited Reading

  Device Mapper

  Documentation Coverage



  Dotted identifiers and λ<arg>.code syntax


  Racket Dropbox SDK

  Reading Writing ".DS_Store" Files

  DSSL: Data Structures Student Language

  DSSL2: Data Structures Student Language

  While loops for Racket


  EBML: A binary encoding format



  ELF Library

  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

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

  Finalizer: trivial finalization

  Expressions rendered as both XML and JSON

  Fourier-Motzkin Elimination for Integer Systems



  Furtle - a library for turtles


  Game Engine

  gdbdump: GDB-based Native Thread Backtrace Dumps

  Racket Generic Binding Forms

  Generic Syntax Expanders

  GObject Introspection



  GLS: Generic Little System

  Tessellation via GLU

  GMP: Multi-precision Arithmetic


  Racket Generic Graph Library

  Gregor: Dates and Times

  Grip a core TR library.

  Crypto Typed Racket crypto procedures

  GTP Checkup

  GTP measure

  GTP utilities


  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-template: HTML-Writing Template Language in SXML



  Making reader extensions hygienic



  Utilities for Manipulating Directories

  Infix Expressions for Racket


  Interface-Oriented Programming for Classes

  IRC Client Library

  IRC Client: High-Level IRC API

  Indiana University pict

  J in Racket

  JavaScript for PLT Scheme

  json-pointer: Referring to bits of JSON

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


  kitco: Precious Metals Market Info. Access


  Keyword Utils


  A picture showing all the languages used to implement Racket.

  Scribble + LaTeX utils

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


  levenshtein: Levenshtein Distance Metric

  OpenAL: Bindings for the OpenAL sound library


  libserial: Portable Serial Port Access



  #lang lindenmayer, a language for L-Systems

  List utilities


  Extra Utilities for match



  Units and Measurements

  mediafile: Media File Metadata Utilities

  Medic Debugger

  Memoize: Lightweight Dynamic Programming


  MiniKanren: logic programming in Scheme

  Miscellaneous Utilities

  Mischief: a Racketeer’s Toolkit





  Polyvalent identifiers with multi-id

  Multipath Daemon API



  my-cond/iffy with sweet-exp


  Nanopass Framework



  Net2: Evolved Networking Libraries


  Neuron: Decentralized Software Organisms



  numformat-old: Number Formatting

  numspell: Spelling Numbers as English

  Neovim client for Racket





  Parameter Utilities

  Paren-shape Pattern Expanders

  Parsec implementation in Racket

  parted: Interface to GNU Parted Disk Partion Utility


  pdf-read: Read and render PDF files



  Apollo Art PEx Power Control

  PGMP: Profile-Guided Meta-Programming


  Text and Paths for Pict3D


  Data Pipes (Iteratees)

  Package Management GUI Libraries

  Package Dependency Graph Visualization

  Bestfit: Lines of Best Fit

  PLT Service Monitor

  Creating PLT-Style Web Pages

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


  Pollen: the book is a program

  Pollen Component


  Pollen-rock: an improved Pollen server

  Pollen sample project: Typography for Lawyers

  Polysemy: support for polysemic identifiers

  Pattern Matching for Ports




  postnet: USPS POSTNET Barcode Encoding

  PPrint: A Universal Pretty-Printer


  Pretty Graphs


  progedit: Programmatic File Editing

  protobj: Prototype-Delegation Object Model

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

  Quad: document processor


  quote - bad

  R Lexer


  racket-cord: Racket discord library



  RacketUI: Automated Web UI Generator

  #lang rackjure

  rackonsole: Lightweight Operator Console for Server Processes

  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


  Reactor: a synchronous reactive language

  data-red-black: augmented red black tree structures

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

  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

  Roman Numerals

  roomba: iRobot Roomba/Create Interface

  Ruckus: Procedural CAD For Weirdos

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

  Racket Rx


  scgi: Web Server HTTP SCGI and CGI




  Scribble Examples Evaluator Forms


  PLAI Typed S-Sxpression Matching

  Option Contracts

  Threading Macros

  Dynamic multiple dispatch

  Generic Collections

  The #%namespaced hook

  Reader Function Literal Shorthand

  Purely Functional Struct Updaters

  Handin Server

  Interactive Evaluation in Slideshow

  Scriblogify: Scribble Your Blogs

  Semver: Semantic Versioning


  Set Expressions

  GUI ".plt" Installer


  Sfont: play with fonts in Racket

  SHA and SHA-2

  Shell Pipeline Package

  shootout: Expression Performance Comparison

  SICP Collections




  Snappy: FFI bindings for fast compression

  soundex: Soundex Hashing

  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

  sudo: Sudo Command Processes


  superv - A Supervisor Program

  Sweet: an alternative to s-expressions


  SXML: S-Expression Representation of XML

  SXML in Racket: Tools for XML and HTML


  High Level Syntax for Syndicate

  2d Graphics with syndicate-gl

  Language creation

  Counting Source Lines of Code

  Syntax Warnings

  SystemD Support

  Table Panel


  Task Server

  Racket Turtle

  Tesira Client



  tmemoize (Typed Memoize) - the final frontier!

  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



  uri-old: Web URI and URL

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

  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

  Web IO for Fundamentals I, 2016, Northeastern University

  webapi: Web APIs

  webscraperhelper: Generating SXPath Queries from SXML Examples

  WordNet - A Lexical Database for English


  XML Expression Path Lookup

  4chan API Client Library


  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

  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

  Graphics: Legacy Library

  MzLib: Legacy Libraries