369 lines
18 KiB
HTML
369 lines
18 KiB
HTML
<h1 id="awesome-racket"><a href="https://awesome-racket.com">Awesome
|
||
Racket</a></h1>
|
||
<p><a href="https://awesome-racket.com/"><img align="right" src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Racket-logo.svg/240px-Racket-logo.svg.png" alt="awesome-racket" title="awesome-racket" /></a></p>
|
||
<p>A curated list of <strong>Awesome Racket</strong>, libraries and
|
||
software. Inspired by <a
|
||
href="https://github.com/avelino/awesome-go">awesome-go</a>.</p>
|
||
<p><a
|
||
href="https://github.com/avelino/awesome-racket/actions/workflows/ci.yml?query=branch%3Amain"><img
|
||
src="https://github.com/avelino/awesome-racket/actions/workflows/ci.yml/badge.svg?branch=main"
|
||
alt="Build Status" /></a> <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></p>
|
||
<p><a href="https://www.producthunt.com/posts/awesome-racket?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-awesome-racket" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=326738&theme=light" alt="awesome-racket - A curated list of awesome Racket language | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a></p>
|
||
<p><a href="https://pkgs.racket-lang.org/">Check the complete package
|
||
list</a></p>
|
||
<p><a href="https://github.com/racket/racket">The Racket
|
||
repository</a></p>
|
||
<h3 id="contents">Contents</h3>
|
||
<ul>
|
||
<li><a href="#awesome-racket">Awesome Racket</a> - <a
|
||
href="#contents">Contents</a>
|
||
<ul>
|
||
<li><a href="#audio-and-music">Audio and Music</a></li>
|
||
<li><a href="#compilers">Compilers</a></li>
|
||
<li><a href="#data-structures">Data Structures</a></li>
|
||
<li><a href="#database-drivers">Database Drivers</a></li>
|
||
<li><a href="#emulators">Emulators</a></li>
|
||
<li><a href="#gui-development">GUI Development</a></li>
|
||
<li><a href="#game-development">Game Development</a></li>
|
||
<li><a href="#games">Games</a></li>
|
||
<li><a href="#images">Images</a></li>
|
||
<li><a href="#machine-learning">Machine Learning</a></li>
|
||
<li><a href="#macros">Macros</a></li>
|
||
<li><a href="#messaging">Messaging</a></li>
|
||
<li><a href="#third-party-apis">Third-party APIs</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
<li><a href="#web-frameworks">Web Frameworks</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="audio-and-music">Audio and Music</h2>
|
||
<p><em>Libraries for manipulating audio.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jeapostrophe/3s">3s</a> - Positional
|
||
sound and mixing for lux and other applications.</li>
|
||
<li><a href="https://github.com/jbclements/RSound">RSound</a> - A
|
||
framework for manipulating and playing sounds using the portaudio
|
||
library. Runs on Windows, Mac OS X, and linux.</li>
|
||
<li><a
|
||
href="https://github.com/lehitoskin/libopenal-racket">libopenal-racket</a>
|
||
- Racket wrapper to the OpenAL library first written by gcr in
|
||
2012.</li>
|
||
<li><a
|
||
href="https://github.com/jbclements/midi-readwrite">midi-readwrite</a> -
|
||
Library to read .mid files in racket</li>
|
||
<li><a href="https://github.com/jeapostrophe/openal">openal</a> - FFI
|
||
for OpenAL.</li>
|
||
<li><a href="https://github.com/jbclements/osc">osc</a> - Open Sound
|
||
Control data definitions.</li>
|
||
<li><a href="https://github.com/jbclements/portaudio">portaudio</a> -
|
||
Bindings for portaudio, a cross-platform audio library.</li>
|
||
<li><a href="https://github.com/quakehead/rsc3">rsc3</a> - SuperCollider
|
||
client ported to Racket.</li>
|
||
<li><a href="https://github.com/jbclements/rtmidi">rtmidi</a> - Provides
|
||
racket bindings for the RtMidi library, thus enabling racket programs to
|
||
send and receive MIDI events.</li>
|
||
<li><a href="https://github.com/jbclements/sonic-pi">sonic-pi</a> - For
|
||
now, this package starts scsynth just like sonic pi does, and can make a
|
||
few sounds.</li>
|
||
<li><a href="https://github.com/takikawa/taglib-racket">taglib</a> -
|
||
Bindings to the taglib C library, which provides simple access to audio
|
||
file metadata.</li>
|
||
<li><a
|
||
href="https://github.com/jbclements/wavelet-transform-haar-1d">wavelet-transform-haar-1d</a>
|
||
- A library to perform forward and reverse 1-d Haar Wavelet
|
||
transforms.</li>
|
||
</ul>
|
||
<h2 id="compilers">Compilers</h2>
|
||
<p><em>Tools for compiling Racket to other languages.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/philnguyen/abstract-compilation">abstract-compilation</a>
|
||
- DSL reducing boiler plates for doing abstract compilation.</li>
|
||
<li><a href="https://github.com/samth/disassemble">disassemble</a> -
|
||
Disassembler for Racket.</li>
|
||
<li><a href="https://github.com/jackfirth/lens">lens</a> - A Racket
|
||
package for creating and composing pure functional lenses.</li>
|
||
<li><a href="https://github.com/soegaard/minipascal">minipascal</a> -
|
||
MiniPascal as a Racket language.</li>
|
||
<li><a
|
||
href="https://github.com/racketscript/racketscript">racketscript</a> - A
|
||
lightweight Racket to JavaScript compiler with some batteries
|
||
included.</li>
|
||
<li><a href="https://github.com/soegaard/urlang">urlang</a> - Write
|
||
JavaScript with Racket syntax. Bonus: Use Racket to define macros for
|
||
JavaScript constructs.</li>
|
||
<li><a
|
||
href="https://github.com/euhmeuh/wasm-adventure">wasm-adventure</a> - A
|
||
WebAssembly DSL.</li>
|
||
<li><a
|
||
href="https://github.com/vishesh/drracket-whalesong">whalesong-tools</a>
|
||
- DrRacket tool for compiling with Whalesong.</li>
|
||
<li><a href="https://github.com/sschauss/wracket">wracket</a> -
|
||
Lisp-like language to WebAssembly build with racket.</li>
|
||
<li><a href="https://github.com/bennn/zordoz">zordoz</a> - Explorer for
|
||
.zo bytecode files.</li>
|
||
</ul>
|
||
<h2 id="data-structures">Data Structures</h2>
|
||
<p><em>Generic datastructures and algorithms.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/dedbox/racket-algebraic">algebraic</a> -
|
||
Algebraic structures for untyped Racket.</li>
|
||
<li><a href="https://github.com/tov/dssl">dssl</a> - Data Structures
|
||
Student Language: an extension of ASL for easier imperative
|
||
programming.</li>
|
||
<li><a href="https://github.com/tov/dssl2">dssl2</a> - A language for
|
||
data structures students.</li>
|
||
<li><a href="https://github.com/Kalimehtar/gls">gls</a> - Generic Little
|
||
(Object, Type, Anything, etc) System - multiple dispatch on types.</li>
|
||
<li><a href="https://github.com/stchang/graph">graph</a> - Generic graph
|
||
library.</li>
|
||
<li><a href="https://gitlab.com/RayRacine/opt">opt</a> - Optional and
|
||
Either data type utilities. Provides util function for Typed Racket’s
|
||
Option type as well as defines an Either type.</li>
|
||
<li><a href="https://github.com/jsmaniac/phc-adt">phc-adt</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/dented42/racket-quad-tree">quad-tree</a>
|
||
- A fairly simple quad-tree implementation. Nothing terribly fancy.
|
||
Currently rather unstable.</li>
|
||
<li><a
|
||
href="https://docs.racket-lang.org/rebellion/index.html">rebellion</a> -
|
||
Dozens of well-documented modules to aid in general-purpose programming.
|
||
<strong>Extensive</strong>. Includes multidict, range set, and much
|
||
more.</li>
|
||
<li><a href="https://gitlab.com/RayRacine/try">try</a> - A Typed Racket
|
||
Try datatype and routines for computations that throw exceptions.</li>
|
||
</ul>
|
||
<h2 id="database-drivers">Database Drivers</h2>
|
||
<p><em>Libraries for connecting and operating databases.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/Kalimehtar/binary-class-dbf">binary-class-dbf</a>
|
||
- Interface to *.dbf files (dBase, Foxpro, etc).</li>
|
||
<li><a href="https://github.com/racket/db">db</a> - Database
|
||
connectivity (main distribution).</li>
|
||
<li><a href="https://github.com/jeapostrophe/dbm">dbm</a> - An interface
|
||
to UNIX dbm files using a libdbm FFI.</li>
|
||
<li><a href="https://github.com/Bogdanp/deta">deta</a> - A functional
|
||
database mapper.</li>
|
||
<li><a href="https://github.com/jeapostrophe/fra">fra</a> - Purely
|
||
functional implementation of relational algebra.</li>
|
||
<li><a href="https://github.com/jeapostrophe/mongodb">mongodb</a> - A
|
||
native Racket interface to MongoDB & BSON.</li>
|
||
<li><a href="https://github.com/eu90h/rackdis">rackdis</a> - Redis
|
||
bindings.</li>
|
||
<li><a href="https://github.com/brown131/racquel">racquel</a> - Racquel
|
||
is an object/relational mapper for Racket.</li>
|
||
<li><a href="https://github.com/stchang/redis">redis</a> - A redis
|
||
client for Racket.</li>
|
||
<li><a href="https://github.com/rmculpepper/sql">sql</a> - an
|
||
S-expression notation for SQL.</li>
|
||
<li><a
|
||
href="https://github.com/jbclements/sqlite-table">sqlite-table</a> - A
|
||
quick way to create and query sqlite tables. Basically a simplified
|
||
wrapper for a subset of the db library.</li>
|
||
</ul>
|
||
<h2 id="emulators">Emulators</h2>
|
||
<p><em>Racket programs emulating other computers and
|
||
architectures</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/soegaard/6502">6502</a> - An
|
||
emulator/assembler/disassembler for 6502.</li>
|
||
<li><a href="https://github.com/euhmeuh/virtual-mpu">virtual-mpu</a> -
|
||
Universal Emulator & Assembler for Old Microprocessors.</li>
|
||
</ul>
|
||
<h2 id="gui-development">GUI Development</h2>
|
||
<p><em>Libraries for cross platform GUI development</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/Metaxal/MrEd-Designer">MrEd Designer</a>
|
||
- MrEd Designer is WYSIWYG program to create GUI applications for
|
||
Racket. (code generator).</li>
|
||
<li><a href="https://docs.racket-lang.org/gui/index.html">The Racket
|
||
Graphical Interface Toolkit</a> - Racket GUI library (core
|
||
distribution).</li>
|
||
<li><a href="https://github.com/Bogdanp/racket-gui-easy">gui-easy</a> -
|
||
A declarative API on top of <code>racket/gui</code>.</li>
|
||
<li><a
|
||
href="https://pkgs.racket-lang.org/package/gui-widget-mixins">gui-widget-mixins</a>
|
||
- Tool tips, cue text and validation for text-field% GUI widgets in
|
||
Racket.</li>
|
||
<li><a
|
||
href="https://pkgs.racket-lang.org/package/map-widget">map-widget</a> -
|
||
A Racket GUI Widget to display maps based on OpenStreetMap tiles More at
|
||
<a
|
||
href="https://pkgd.racket-lang.org/pkgn/search?q=&tags=gui">packages
|
||
tagged <code>GUI</code></a>.</li>
|
||
</ul>
|
||
<h2 id="game-development">Game Development</h2>
|
||
<p><em>Awesome game development libraries.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jeapostrophe/apse">apse</a> - A Pixel
|
||
Sprite Editor.</li>
|
||
<li><a href="https://github.com/srfoster/game-engine">game-engine</a> -
|
||
Scratchpad for racket game stuff.</li>
|
||
<li><a href="https://github.com/get-bonus/get-bonus">get-bonus</a> - An
|
||
experimental video game development environment.</li>
|
||
<li><a
|
||
href="https://github.com/jeapostrophe/mode-lambda">mode-lambda</a> -
|
||
Sprite-based 2D graphics engine.</li>
|
||
<li><a href="https://github.com/jeapostrophe/pict3d">pict3d</a> - A 3D
|
||
engine with a purely functional API.</li>
|
||
<li><a href="https://github.com/Metaxal/towers">towers</a> - Towers is
|
||
an original 2-player board game.</li>
|
||
<li><a href="https://github.com/thoughtstem/vr-lang">vr-lang</a> -
|
||
Racket Lang for Virtual Reality (Aframe).</li>
|
||
</ul>
|
||
<h2 id="games">Games</h2>
|
||
<p><em>Games written in Racket</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/racket/games">Racket games</a> - games
|
||
in main distribution.</li>
|
||
<li><a href="https://github.com/massung/r-cade">r-cade</a> - Retro Game
|
||
Engine for Racket.</li>
|
||
<li><a
|
||
href="https://github.com/soegaard/space-invaders">space-invaders</a> - A
|
||
Racket remake of Mary Rose Cook’s JavaScript version of Space
|
||
Invaders.</li>
|
||
<li><a href="https://github.com/Halfwake/web-sweeper">web-sweeper</a> -
|
||
Stateless Server Side Mine Sweeper.</li>
|
||
</ul>
|
||
<h2 id="images">Images</h2>
|
||
<p><em>Libraries for manipulating images.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/lehitoskin/png-image">png-image</a> -
|
||
Library to view and modify PNG chunks.</li>
|
||
<li><a href="https://github.com/wingo/racket-jpeg">racket-jpeg</a> -
|
||
JPEG parsing, transformation, and codec library for Racket.</li>
|
||
<li><a href="https://github.com/simmone/racket-simple-qr">simple-qr</a>
|
||
- a qr code tool for racket-lang.</li>
|
||
<li><a href="https://github.com/videolang/video">video</a> - Video is a
|
||
DSL for describing videos.</li>
|
||
</ul>
|
||
<h2 id="machine-learning">Machine Learning</h2>
|
||
<p><em>Libraries for Machine Learning.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/charlescearl/DeepRacket">DeepRacket</a>
|
||
- A simple starting point for doing deep learning in Racket.</li>
|
||
<li><a href="https://github.com/cloudkj/layer">layer</a> - Neural
|
||
network inference the Unix way.</li>
|
||
<li><a href="https://github.com/asbaker/racket-knn">racket-knn</a> - K
|
||
Nearest Neighbors, KNN, is a lazy, supervised machine learning
|
||
algorithm. This is an implementation in scheme using racket.</li>
|
||
<li><a href="https://github.com/danking/racket-ml">racket-ml</a> - A
|
||
collection of things I found useful for doing Machine Learning problem
|
||
sets.</li>
|
||
<li><a href="https://github.com/johnstonskj/rml-core">rml-core</a> -
|
||
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.</li>
|
||
<li><a
|
||
href="https://github.com/johnstonskj/rml-decisiontrees">rml-decisiontrees</a>
|
||
- 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.</li>
|
||
<li><a href="https://github.com/johnstonskj/rml-knn">rml-knn</a> - 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.</li>
|
||
<li><a href="https://github.com/lasfter/tesseracket">tesseract</a> -
|
||
Bindings for Google’s Tesseract-OCR.</li>
|
||
</ul>
|
||
<h2 id="macros">Macros</h2>
|
||
<p><em>Awesome macros that make your life easier</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jsmaniac/anaphoric">anaphoric</a> -
|
||
Anaphoric macros for Racket.</li>
|
||
<li><a href="https://github.com/lexi-lambda/threading">threading</a> -
|
||
Macros to flatten nested function calls.</li>
|
||
</ul>
|
||
<h2 id="messaging">Messaging</h2>
|
||
<p><em>Libraries that implement messaging systems.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/dedbox/racket-neuron">neuron-lib</a> -
|
||
Implementation of neuron.</li>
|
||
<li><a href="https://github.com/mflatt/profj">profj</a> - Kathy Gray’s
|
||
ProfessorJ language ported to modern DrRacket.</li>
|
||
<li><a href="https://github.com/tonyg/racket-stomp">stomp</a> - STOMP
|
||
messaging protocol codec and client.</li>
|
||
<li><a href="https://github.com/rmculpepper/racket-zeromq">zeromq-r</a>
|
||
- Bindings for ZeroMQ.</li>
|
||
<li><a href="https://github.com/mordae/racket-zmq">zmq</a> - Minimal
|
||
Racket ZeroMQ Bindings.</li>
|
||
</ul>
|
||
<h2 id="third-party-apis">Third-party APIs</h2>
|
||
<p><em>Libraries for accessing third party APIs.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/greghendershott/aws">aws</a> - Amazon
|
||
Web Services including S3, SDB, SES, SNS, SQS, CloudWatch, Glacier,
|
||
Dynamo, and Route 53.</li>
|
||
<li><a
|
||
href="https://github.com/cjdev/aws-cloudformation-deploy">aws-cloudformation-deploy</a>
|
||
AWS Cloudformation deployment scripting library.</li>
|
||
<li><a href="https://github.com/thoughtstem/comm-panel">comm-panel</a> -
|
||
Racket GUI widget for sending, receiving, listening, and broadcasting
|
||
strings over AWS SQS.</li>
|
||
<li><a href="https://github.com/tonyg/racket-google">google</a> - Google
|
||
APIs (Drive, Plus, etc) for Racket.</li>
|
||
<li><a href="https://github.com/euhmeuh/racket-ovh">racket-ovh</a> -
|
||
Unofficial Racket wrapper for OVH API.</li>
|
||
<li><a href="https://github.com/LiberalArtist/recaptcha">recaptcha</a> -
|
||
Utilities for using reCAPTCHA with the web-server/formlets API.</li>
|
||
</ul>
|
||
<h2 id="testing">Testing</h2>
|
||
<p><em>Libraries for testing codebases and generating test data</em></p>
|
||
<ul>
|
||
<li><a href="https://docs.racket-lang.org/rackunit/">RackUnit</a> -
|
||
RackUnit is a unit-testing framework for Racket. It is designed to
|
||
handle the needs of all Racket programmers, from novices to
|
||
experts.</li>
|
||
<li><a
|
||
href="https://github.com/alex-hhh/al2-test-runner">al2-test-runner</a> -
|
||
alternate rackunit test runner.</li>
|
||
<li><a href="https://github.com/florence/cover">cover</a> - a code
|
||
coverage tool for racket.</li>
|
||
<li><a href="https://github.com/dstorrs/racket-test-more">test-more</a>
|
||
- A Racket version of Perl’s Test::More library.</li>
|
||
</ul>
|
||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||
<p><em>Full stack web frameworks.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/nihirash/holy">HoLy</a> - HoLy is simple
|
||
a HTTP-server Library for Racket.</li>
|
||
<li><a href="https://github.com/rackt-org/rackt">Rackt</a> - An
|
||
ultrasmall (~70 loc) React wrapper written in RacketScript.</li>
|
||
<li><a href="https://github.com/Junker/routy">Routy</a> - Routy is a
|
||
lightweight high performance HTTP request router for Racket.</li>
|
||
<li><a href="https://github.com/dmac/spin">Spin</a> - Write RESTful web
|
||
apps in Racket.</li>
|
||
<li><a href="https://github.com/greghendershott/frog">frog</a> - Frog is
|
||
a static blog generator implemented in Racket, targeting Bootstrap and
|
||
able to use Pygments.</li>
|
||
<li><a href="https://github.com/Bogdanp/koyo">koyo</a> - A web
|
||
development toolkit for Racket.</li>
|
||
<li><a href="https://github.com/2-3/polkadot">polkadot</a> - A
|
||
lightweight personal wiki in Racket.</li>
|
||
<li><a
|
||
href="https://github.com/jackfirth/racket-request">racket-request</a> -
|
||
Package for simplifying HTTP requests and writing integration tests of
|
||
REST-ful APIs in Racket.</li>
|
||
<li><a href="https://github.com/vicampo/riposte">riposte</a> - Scripting
|
||
language for testing JSON-based HTTP APIs.</li>
|
||
<li><a href="https://github.com/nuty/vela">vela</a> - Simple web
|
||
framework to build RESTful app in Racket.</li>
|
||
<li><a href="https://github.com/euhmeuh/web-galaxy">web-galaxy</a> - A
|
||
minimalist web framework for the Racket web-server.</li>
|
||
<li><a
|
||
href="http://docs.racket-lang.org/web-server/">web-server/servlet</a> -
|
||
Running Web Servlets describes how to run the servlets you’ve
|
||
written.</li>
|
||
</ul>
|
||
<p><a href="https://github.com/avelino/awesome-racket">racket.md
|
||
Github</a></p>
|