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



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


  Computational Thinking : CSC104 (Fall 2018)


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

  ProfessorJ: Java in Racket

  Rash: The Reckless Racket Shell

  The Hackett Programming Language

  remix - a revised version of Racket


  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

  Files-viewer is 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

  protoc-gen-racket: Generate Racket Code for Protocol Buffers

  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


  Bitmap: Functional Pictures

  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

  MrLib: Extra GUI Libraries

  Turtle Graphics

  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

  Resource Interchange File Format (RIFF)

  WAVE File Format (WAV)

  Binary-class: parsing and saving binary data

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

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

  CSS: A CSS Engine Written in Typed Racket

  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

  PNG: Read and Write Portable Network Graphics

  PSD: Read and Write Photoshop Documents

  Megaparsack: Practical Parser Combinators

  File: Racket File and Format Libraries

  Sparse: Test Generation for Simple S-expression Language Parsers


  SVG: An SVG Engine written in Typed Racket

  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

  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

  Protocol Buffers: Portable Data Serialization

  Unicode Chars







  Taglib Bindings for Racket



  GTP Benchmarks


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



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 Numbers for Modern Locales

  CLDR Locale Names for Modern Locales

  CLDR Dates for Modern Locales

  CLDR Core


Math and Science

  Color Space Conversion

  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

  struct-define: Short-hand accessors for struct fields

  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

  raart: Racket ASCII Art and Interfaces



  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

  SRFI Nonfree Libraries and Documentation


  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 Persistent Vectors

  Legacy Generic Collections

  Lenses for Generic Collections

  Algebraic structure

  Anaphoric conditionals

  Anarki: Community-Managed Arc Variant


  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

  C Metaprogramming Utilities

  C Constants


  canonicalize-path: Filesystem Path Canonicalization

  ccnum: Credit Card Number Utilities

  Chaining module languages


  chk: a minimal tester

  A calculus of mediated exchange (cmx)

  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

  Package dali

  Dan Scheme

  Set: Purely Functional Sets

  Semi-Persistent Arrays

  Persistent Vectors





  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

  Event-lang: synchronizable event programming



  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


  G-code Tools

  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


  Goblins: a lightweight actor library

  Racket Generic Graph Library

  Gregor: Dates and Times

  GTP measure

  GTP utilities


  Help and Documentation Utilities

  Bug Reporting


  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


  icns: Apple Icon Files


  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

  Lathe Comforts

  Lathe Ordinals

  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



  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



  MiniKanren: logic programming in Scheme

  Miscellaneous Utilities

  Mischief: a Racketeer’s Toolkit




  MessagePack-RPC Client for Racket


  Polyvalent identifiers with multi-id

  Multipath Daemon API



  my-cond/iffy with sweet-exp


  Nanopass Framework




  IP Addresses

  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

  Package parquet.

  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


  Pinyin: Convert Hanzi to Pinyin

  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-printing with format strings

  Pretty Graphs


  progedit: Programmatic File Editing

  protobj: Prototype-Delegation Object Model


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


  quote - bad

  R Lexer


  racket-cord: Racket discord library



  (eighth RacketCon) Workshop: Web Programming

  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

  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

  Ruckus: Procedural CAD For Weirdos

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

  Racket Rx


  Package racket-scaffold

  scgi: Web Server HTTP SCGI and CGI




  Scribble Examples Evaluator Forms


  Handin Server

  Reader Function Literal Shorthand

  Dynamic multiple dispatch

  The #%namespaced hook

  Purely Functional Struct Updaters

  Option Contracts

  Generic Collections

  Threading Macros

  Interactive Evaluation in Slideshow

  PLAI Typed S-Sxpression Matching

  Linea: line oriented reader

  Scriblogify: Scribble Your Blogs

  SECD: A reduced version.

  Semver: Semantic Versioning


  Serializing Syntax Introducers

  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

  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


  Struct-type properties with a struct-like interface


  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

  Symbolic algebraic expressions

  High Level Syntax for Syndicate

  2d Graphics with syndicate-gl

  Language creation

  Combining syntax classes together as multiple variants

  Counting Source Lines of Code

  Syntax Warnings

  SystemD Support

  Table Panel


  Task Server

  Racket Turtle

  Tesira Client



  Package thrift.


  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



  URIs and URLs

  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

  MzLib: Legacy Libraries

  Graphics: Legacy Library