| Vocabulary | Summary |
ranges | Virtual sequence consisting of a range of numbers |
init | Startup and initialization hooks |
words | Words are the fundamental units of code |
byte-vectors | Growable byte arrays |
strings | Fixed-size character arrays |
sbufs | Growable string buffers |
memory | Heap introspection support |
vocabs | Vocabularies are collections of words loaded from a source file |
growable | Low-level implementation of vectors and string buffers |
classes | Object system implementation |
lexer | Factor source code lexer |
assocs | Associative structure protocol |
io | Stream protocol |
hashtables | Associative structure with expected constant time lookup |
byte-arrays | Efficient fixed-length byte arrays |
alien | C library interface |
vectors | Growable arrays |
parser | Factor source code parser |
math | Arithmetic |
combinators | Complex conditionals (cond, case) and generalized dataflow combinators (cleave, spread) |
destructors | Object destructors |
namespaces | Dynamically-scoped variables |
memoize | Memoization |
macros | Utility for defining compiler transforms |
hash-sets | Set structure with constant-time addition and removal |
system | OS and CPU queries and other system-level tasks |
checksums | Checksum protocol and implementations |
fry | Syntax for pictured partial application and composition |
layouts | Low-level in-memory object layout introspection |
locals | Efficient named local variables and lexical closures |
make | Sequence construction utility |
sequences | Sequence protocol, combinators and utilities |
sets | Set-theoretic operations on sequences |
arrays | Fixed-size arrays |
splitting | Splitting sequences and grouping sequence elements |
sorting | Merge sort for sequences |
continuations | Capturing and restorating continuations, catching errors |
generic | Generic word implementation |
quotations | Code quotations, essentially executable fixed-size arrays |
graphs | Directed graphs |
generalizations | Generalized stack shufflers and combinators to arbitrary numbers of inputs |
syntax | Standard Factor syntax |
effects | Stack effects as first-class data types |
definitions | Definition protocol and cross-referencing |
slots | Low-level object introspection support |
source-files | Support for tracking loaded source files |
compiler | Factor's optimizing machine code compiler |
kernel | Data and control flow, basic object protocol |
summary | Generic word for converting an object into a brief one-line string |
| Vocabulary | Summary |
present | Generic word for converting objects to strings for human consumption |
linked-sets | Sets that yield items in insertion order |
uu | Support for uuencoding and uudecoding. |
inverse | Invertible quotations |
vlists | Persistent sequence implementation optimizing the case where there is no sharing |
gobject | GObject binding |
bit-vectors | Growable bit arrays |
ui | Factor's graphical user interface framework |
ftp | Common code shared by FTP client and server |
deques | Double-ended queue protocol and common operations |
endian | Utilities for working with big-endian and little-endian data |
syndication | RSS 1.0, 2.0 and Atom feed parser |
ascii | ASCII character classes |
libc | Manual memory management for interfacing with C |
crypto | |
msgpack | Support for msgpack protocol. |
named-tuples | Use tuples like both sequences and assocs |
toml | Parsers for Tom's Obvious, Minimal Language (TOML). |
nibble-arrays | Space-efficient arrays of 4-bit values |
prettyprint | Factor source code prettyprinter |
furnace | Furnace web framework |
strings | Fixed-size character arrays |
core-foundation | Binding to macOS CoreFoundation library |
tools | |
tuple-arrays | Efficient arrays of tuples with value semantics for elements |
gdk4 | |
listener | Terminal-based interactive code evaluator |
gdk3 | |
xml-rpc | XML RPC client and server |
calendar | Operations on timestamps and durations |
regexp | Regular expressions |
couchdb | |
etc-hosts | Parsing the /etc/hosts file |
bootstrap | |
base24 | Base24 encoding/decoding |
cache | An associative mapping whose entries expire after a while |
vocabs | Vocabularies are collections of words loaded from a source file |
base85 | Base85 encoding/decoding (ASCII85, ADOBE85, Z85) |
gdk2 | Gdk binding |
unicode | Unicode support |
bit-sets | Efficient bitwise operations on bit arrays |
persistent | |
lists | Implementation of lisp-style linked lists |
cpu | |
lcs | Levenshtein distance and diff between sequences |
inspector | Terminal-based object viewer and editor |
base36 | Base36 encoding/decoding |
images | Bitmap images |
classes | Object system implementation |
biassocs | Bidirectional assocs |
unrolled-lists | Deque implementation with constant-time insertion and removal at either end, and better space efficiency than a double-linked list |
match | ML-style pattern matching |
pango | Pango binding |
functors | First-class syntax |
timers | One-time and recurring timers for relative time offsets |
grouping | Grouping sequence elements into subsequences |
gdk-pixbuf | GdkPixbuf binding |
base91 | Base91 encoding/decoding |
base62 | Base62 encoding/decoding |
interval-maps | Interval maps for disjoint closed ranges |
atk | Atk binding |
xmode | |
glib | GLib binding |
see | Printing loaded definitions as source code |
iokit | Bindings to Apple IOKit device interface |
editors | Editor integration |
porter-stemmer | Porter stemming algorithm |
base64 | Base64 encoding/decoding (RFC 3548) |
cbor | Support for Concise Binary Object Representation (CBOR) |
io | Stream protocol |
linked-assocs | Assocs that yield items in insertion order |
oauth2 | |
pack | Packing and unpacking binary data |
specialized-vectors | Vectors of unboxed primitive C types |
dlists | Double-linked lists/deques |
hashtables | Associative structure with expected constant time lookup |
serialize | Binary serialization of arbitrary object graphs |
delegate | Delegation and mimicking on top of the Factor object system |
html | HTML utilities |
models | Observable slots which can be composed in various ways |
cairo | Cairo graphics library binding |
alien | C library interface |
game | |
bit-arrays | Fixed-size bit arrays |
vectors | Growable arrays |
gobject-introspection | GObjectIntrospection support |
math | Arithmetic |
combinators | Complex conditionals (cond, case) and generalized dataflow combinators (cleave, spread) |
xml | XML reader and writer |
mirrors | View any object as an association mapping slots to values |
peg | Parsing expression grammar and packrat parser |
gtk3 | |
hex-strings | |
ntp | Client for NTP protocol |
command-line | Command line argument parsing |
gtk4 | |
memoize | Memoization |
concurrency | |
hash-sets | Set structure with constant-time addition and removal |
cuckoo-filters | Cuckoo filters |
unix | Bindings to library and system calls found on Unix-like systems |
vm | Layout of the C vm structure |
english | English language |
ini-file | Parses INI configuration files. |
gtk2 | Gtk binding |
wrap | Word wrapping |
reservoir-sampling | |
quoting | |
json | JSON reader and writer |
cocoa | Objective C/Cocoa bridge |
checksums | Checksum protocol and implementations |
threads | Co-operative threading |
colors | Colors as a first-class data type |
locals | Efficient named local variables and lexical closures |
http | Common code shared by HTTP client and server |
graphene | |
urls | Tools for working with URLs (uniform resource locators) |
base16 | Base16 encoding/decoding (RFC 3548) |
retries | |
csv | CSV parser |
formatting | Format data according to a specified format string |
linux | |
smtp | Sending mail via SMTP |
sequences | Sequence protocol, combinators and utilities |
bloom-filters | Bloom filters |
refs | References to keys and values in assocs |
compression | |
base45 | Base45 encoding/decoding (RFC 9285) |
simple-flat-file | Parsing simple text files |
core-graphics | Binding to macOS Core Graphics library |
typed | Strongly-typed word definitions |
lazy | Lazy thunks |
splitting | Splitting sequences and grouping sequence elements |
interpolate | Interpolating variable values into strings |
sorting | Merge sort for sequences |
debugger | Printing errors, inspecting tracebacks, restarts |
db | Relational database abstraction layer |
globs | Unix shell-style glob pattern matching |
environment | Environment variables |
x11 | X11 Xlib and GLX bindings |
method-chains | BEFORE: and AFTER: syntax for extending methods in class hierarchies |
mime | |
resolv-conf | |
search-deques | Double-ended queues with sub-linear membership testing |
base92 | Base92 encoding/decoding |
roman | Roman numerals library |
base32 | Base32 encoding/decoding (RFC 3548, RFC 4648, Crockford) |
validators | Value validation for the web framework |
gmodule | GModule binding |
simple-tokenizer | Simple string tokenizer |
documents | Mutable structure for storing a plain text document being edited in memory |
nmake | Generalization of make for constructing several sequences simultaneously |
eval | Ad-hoc evaluation of strings of code |
columns | Virtual sequence view of a matrix column |
base58 | Base58 encoding/decoding |
literals | Expression interpolation into sequence literals |
gsk4 | |
windows | Microsoft Windows XP/Vista/7 API bindings |
fixups | |
random | Random number generator protocol and implementations |
circular | Virtual sequence presenting a rotation of an underlying sequence |
webbrowser | Open URLs in your web browser |
disjoint-sets | An efficient implementation of the disjoint-set data structure |
fonts | Fonts as a first-class data type |
openssl | OpenSSL binding |
dns | |
quoted-printable | Quoted printable encoding/decoding |
core-text | Binding for macOS Core Text library |
stack-checker | Stack effect inference |
heaps | Maxheap and minheap implementations of priority queues |
definitions | Definition protocol and cross-referencing |
uuid | Generates UUID's. |
slots | Low-level object introspection support |
gir | |
source-files | Support for tracking loaded source files |
compiler | Factor's optimizing machine code compiler |
binary-search | Fast searching of sorted arrays |
protocols | |
bitstreams | Reading sequences of bits from a byte stream |
logging | Logging framework with support for log rotation and machine-readable logs |
oauth1 | |
specialized-arrays | Arrays of unboxed primitive C types |
interval-sets | |
farkup | Simple markup language for generating HTML |
suffix-arrays | Suffix arrays |
hints | Syntax sugar for the Factor compiler's specializer hints facility |
tr | Fast character-to-character translation of ASCII strings |
multiline | Multiline string literals |
help | Online help system |
ip-parser | Parsing IPv4 and IPv6 addresses |
xdg | XDG Base Directory Specification |
system-info | Query the operating system for hardware information in a platform-independent way |
escape-strings | |
gio | GIO binding |
opengl | OpenGL binding |
channels | Communicating Sequential Processes |
boxes | An abstraction for enforcing a mutual-exclusion invariant |
| Vocabulary | Summary |
svg | Parsers for SVG data |
bson | BSON (http://en.wikipedia.org/wiki/BSON) reader and writer |
bare | BARE (https://baremessages.org) encoding/decoding. |
benchmark | Various benchmarks to test Factor's optimizer |
tzinfo | Parsing timezone files. |
geobytes | City, country, region database using database from http://www.geobytes.com/GeoWorldMap.zip |
backoff | |
build-from-source | |
pair-methods | Order-insensitive double dispatch generics |
gml | |
edn | Extensible Data Notation (EDN) |
asn1 | ASN.1 parser |
trails | |
sudokus | graphical sudoku solver |
robohash | Robohash! |
ui | Factor's graphical user interface framework |
text-analysis | Perform analysis on English text. |
hipku | Encoding IPv4/IPV6 addresses as haiku |
webapps | |
papier | |
ulid | Universally Unique Lexicographically Sortable Identifier |
rocksdb | |
window-controls-demo | Open windows with different control sets |
zoneinfo | |
fuel | FUEL turns Emacs into a rich, interactive development environment for Factor, |
twitter | Wrapper for Twitter web service |
crypto | |
msgpack | Support for msgpack protocol. |
color-picker-game | Color picker game |
ctags | Ctags generator |
quadtrees | Quadtree spatial indices |
stack-as-data | |
grid-meshes | |
ogg | Ogg media library binding |
s3 | Amazon S3 Wrapper |
native-thread-test | |
hashcash | Hashcash implementation |
furnace | Furnace web framework |
id3 | |
lint | Finds potential mistakes in code |
hacker-news | |
zealot | |
ping | Uses ICMP to test the reachability of a network host. |
shuffle | Additional shuffle words |
periodic-table | Periodic table gadget demo |
tools | |
variants | Syntax and combinators for manipulating algebraic data types |
broadcast-server | |
docker | |
csexp | Csexp (https://www.wikiwand.com/en/Canonical_S-expressions) reader and writer |
spotlight | |
color-table | |
gpu | High-level OpenGL-based GPU resource management and rendering library |
binhex | Encoding and decoding of BinHex 4.0 files |
curses | ncurses binding |
gilded-rose | |
syslog | Syslog protocol |
imap | Reading mailboxes using IMAP |
discord | |
gesture-logger | Gadget which logs all received gestures, for debugging |
dotenv | Support for .env files |
ecdsa | Elliptic Curve Digital Signature Algorithm (OpenSSL realisation) |
brain-flak | A Brain-flak to Factor compiler |
calendar | Operations on timestamps and durations |
key-logger | |
lru-cache | Least Recently Used (LRU) cache |
kaggle | |
hetzner | |
wikipedia | Wikipedia |
trees | Binary search trees |
punycode | Punycode and Internationalized Domain Names |
lisppaste | XML-RPC interface to http://paste.lisp.org |
wordlet | |
visionect | Visionect Server Management API |
memory | Heap introspection support |
bittorrent | BitTorent protocol for peer-to-peer file sharing. |
bubble-chamber | |
gemini | Gemini client |
html5 | |
hamurabi | Port of the HAMURABI.BAS game |
spheres | Draw pixel-perfect spheres using GLSL shaders |
file-server | Command-line HTTP file server |
gdbm | GNU DataBase Manager |
model-viewer | |
format-using | |
vocabs | Vocabularies are collections of words loaded from a source file |
wordtimer | Microsecond precision code timer/profiler. |
fjsc | A 'subset of Factor' to Javascript compiler |
unicode | Unicode support |
poker | Poker hand evaluator |
enigma | Enigma cipher machine |
freetype | FreeType text rendering library binding |
midi | Reading and writing MIDI files |
magic | libmagic binding |
lists | Implementation of lisp-style linked lists |
python | Python interface |
bitly | Wrapper for bit.ly URL shortening web service |
libclang | |
cpu | |
cairo-gadgets | UI gadget for rendering graphics with Cairo |
bech32 | Bech32 encoding/decoding |
redis | Words for communicating with the Redis key-value database |
successor | |
images | Bitmap images |
processing | |
msxml-to-csv | Converting MSXML to comma separated values demo |
ryu | Float to string conversion |
classes | Object system implementation |
backtrack | Simple non-determinism |
backblaze | |
scryfall | |
multi-methods | Experimental multiple dispatch implementation |
pairs | Assoc implementation optimized for a single key/value pair |
bank | Bank account simulator for compound interest calculated daily and paid monthly |
shapefiles | Parsers for ESRI Shapefiles |
shell | |
cairo-samples | |
bend | Factor port of Bend language features |
cuesheet | Parsing cue sheet (cue files) |
grouping | Grouping sequence elements into subsequences |
dbf | Parsers for various dBase database files |
macho | Constants and structs related to the Mach object format. |
nehe | NeHe OpenGL tutorials ported to Factor |
google | |
backticks | Backtick process syntax |
cuda | |
tetris | Graphical Tetris game |
zeromq | Bindings to 0MQ (zeromq). |
path-finding | A* path-finding algorithm |
smalltalk | |
crontab | Parser for crontab files |
stream | |
cairo-demo | |
string-server | |
rpn | Simple RPN calculator |
tokyo | |
roms | |
snake-game | |
icfp | |
minesweeper | Minesweeper game |
readline | libreadline bindings |
assocs | Associative structure protocol |
qtkit | |
wasm | |
irc | |
io | Stream protocol |
changer | |
hello-ui | Graphical hello world demo |
gravatar | Wrapper for the Gravatar service. |
dice | Random dice rolls (with modifiers) |
llvm | |
picomath | Implementation of picomath.org small math functions |
24-game | |
logic | |
hello-unicode | Modern "Hello world" which demonstrates various Unicode scripts |
tensors | |
literate | Literate programming techniques |
flamegraph | |
bunny | Stanford Bunny OpenGL demo |
ldcache | |
pdf | Creating PDF files |
quiz | |
time-server | |
readline-listener | A listener that uses libreadline. |
terminal | |
soundex | Phonetic algorithm for indexing names by sound |
itunes | |
openal | OpenAL 3D audio library binding |
roles | Mixins for tuples |
verbal-expressions | Human-readable regular expressions |
file-picker | |
file-monitor | Command-line file change monitor |
html | HTML utilities |
gtk2-samples | |
boids | Artificial life program simulating the flocking behaviour of birds |
project-euler | Project Euler example solutions |
models | Observable slots which can be composed in various ways |
alien | C library interface |
hello-world | Textual hello world demo |
game | |
rot13 | Rot13 demo |
cli | |
boyer-moore | Boyer-Moore string search algorithm |
koszul | Lie algebra cohomology |
youtube | Wrapper for YouTube.com API. |
text-to-speech | Text-to-speech utility |
subrip-subtitles | |
math | Arithmetic |
echo-server | |
combinators | Complex conditionals (cond, case) and generalized dataflow combinators (cleave, spread) |
mongodb | MongoDB Factor integration |
reverse | Combinators for reversing the inputs of a callable |
lua | FFI bindings to the Lua programming language. |
merger | |
slides | Bare-bones tools for giving presentations and demonstrations with the Factor UI |
solr | |
time | |
z-algorithm | Z algorithm for pattern preprocessing |
wake-on-lan | Wake-on-LAN support |
contributors | Contributor patch counts from git |
peg | Parsing expression grammar and packrat parser |
env | Access environment variables via the assoc protocol |
flip-text | Turns text upside-down. |
http2 | |
rdap | Registration Data Access Protocol (RDAP) |
bitcoin | |
namespaces | Dynamically-scoped variables |
units | |
memcached | Provides access to memcached, a high-performance, distributed memory object caching system. |
dwarf | |
digraphs | Simple directed graph implementation for topological sorting |
sudoku | Sudoku solver demo |
annotations | Code annotation comment syntax |
terminfo | Reads terminfo database files |
maze | Maze generator demo |
numbers-game | Number guessing game demo |
decimals | |
opencl | High-level vocabulary for using OpenCL |
cgi | Support using Factor in CGI scripts |
cap | Creating and displaying screenshots of Factor |
constructors | Utility to simplify tuple constructors |
curl | Bindings to libcurl |
vin | VIN (Vehicle Identification Number) |
geo-ip | IP address geolocation using database from http://software77.net/cgi-bin/ip-country/ |
pong | |
rlgl | Bindings for rlgl |
zim | Parsers for the ZIM file format |
synth | Simple sound synthesis using OpenAL. |
semver | |
audio | Framework for reading and playing back audio |
chipmunk | |
brainfuck | Brainfuck programming language. |
tty-server | Connect to a Factor listener through telnet |
checksums | Checksum protocol and implementations |
tftp | |
bencode | Support for bencoding. |
github | |
certs | |
gamelib | |
txon | TXON (http://www.hxa.name/txon/) reader and writer |
mason | Continuous build system for Factor |
fastcgi | |
multibase | Multibase protocol for encoding binary data |
key-handlers | |
colors | Colors as a first-class data type |
euler | |
locals | Efficient named local variables and lexical closures |
odbc | ODBC (Open DataBase Connectivity) binding |
recipes | Database backed recipe sharing |
variables | |
L-system | |
geohash | Geohash geocoding system. |
drunken-bishop | Drunken bishop visual checksum algorithm |
noise | |
stomp | STOMP (Simple Text Oriented Messaging Protocol) client library |
vulkan | |
taxes | |
sequences | Sequence protocol, combinators and utilities |
turing | Turing machine simulator |
yenc | Encoding and decoding of the yEnc format |
sets | Set-theoretic operations on sequences |
persistency | |
money | Utility for calculating money with rationals |
chrome-tools | |
bluesky | |
graphviz | |
arrays | Fixed-size arrays |
raygui | |
pair-rocket | H{ "foo" => 1 "bar" => 2 } style literal syntax |
pop3 | Retrieve mail via POP3 |
lcd | 7-segment LCD clock demo |
metar | METAR and TAF weather parsers |
compression | |
terrain | Walk around on procedurally generated terrain |
reddit | Reddit API |
infix | Support for infix notation in Factor programs |
7guis | |
text-to-pdf | Text-to-PDF converter. |
nurbs | NURBS curve evaluation |
raylib | Bindings for Raylib 4.5 |
splitting | Splitting sequences and grouping sequence elements |
tokencase | |
sorting | Merge sort for sequences |
golden-section | Golden section demo |
emojify | |
spider | |
marvel | |
long-urls | Expand short urls. |
db | Relational database abstraction layer |
codebase-analyzer | |
webkit-demo | A simple example showing usage of the Cocoa WebKit framework from Factor |
yaml | |
continuations | Capturing and restorating continuations, catching errors |
duckdb | |
pickle | Support for Python object serialization |
gap-buffer | Gap buffer data structure |
progress-bars | |
gtk4-samples | |
pcre2 | libpcre2 binding |
aws | |
descriptive | Descriptive errors generated automatically for specially defined words |
monads | Haskell-style monads |
gstreamer | GStreamer binding |
pcre | libpcre binding |
coroutines | Coroutines implementation |
sodium | The Sodium crypto library |
managed-server | |
generators | Generators implementation |
99-bottles | |
containers | |
multisets | |
boolean-expr | Simple boolean expression evaluator and simplifier |
fluids | |
modern | |
libtls | |
robots | |
wolfram-alpha | Query API for Wolfram Alpha |
morse | Converts between text and morse code, and plays morse code. |
glfw | |
wipe | Erase files by overwriting contents with random data |
windows | Microsoft Windows XP/Vista/7 API bindings |
random | Random number generator protocol and implementations |
tnetstrings | Reader and writer for "tagged netstrings" |
countries | Country-specific codes including ISO 3166-1 |
tldr | tldr pages (simplified and community-driven man pages) |
game-of-life | Conway's Game of Life |
bitcask | Bitcask key/value database |
partial-continuations | Partial continuations - breset/bshift |
syntax | Standard Factor syntax |
leb128 | LEB128 (Little Endian Base 128) encoding support |
color-picker | Color picker gadget demo |
totp | RFC 6238 Time-Based One-Time Passwords |
fftw | Bindings to FFTW3. |
machine-learning | |
anagrams | |
libusb | Bindings to libusb |
markov-chains | Markov chain processes. |
clutter | Clutter binding |
gopher | Gopher client |
codebook | |
process-autopsy | |
jamshred | A simple 3d tunnel racing game |
tar | |
parser-combinators | Haskell-style lazy parser combinators |
slots | Low-level object introspection support |
c | |
monadics | Alternative Implementation of Haskell-style Monads |
gir | |
xkcd | Comics from the http://xkcd.com website |
libudev | Bindings to libudev |
proquint | Proquint encoding/decoding |
compiler | Factor's optimizing machine code compiler |
demos | |
log-viewer | Simple log file watcher demo using io.monitors |
qw | Perlish syntax for literal arrays of whitespace-delimited strings (qw{ foo bar }) |
command-loop | Generic line-oriented command interpreter. |
mediawiki | |
spelling | Peter Norvig's spelling corrector |
notifications | |
cursors | |
npm | |
git | |
websites | |
help | Online help system |
tinyvg | Parsers for the TinyVG image format |
gitignore | Implements .gitignore parser |
elf | Constants and structs related to the ELF object format. |
chess960 | |
usa-cities | |
openai | OpenAI API |
site-watcher | |
reports | |
yahoo | Yahoo! search example using XML |
did-you-mean | |
elevate | Cross-platform API for elevated permissions |
opengl | OpenGL binding |
ifaddrs | |
iso-codes | |