Project Nayuki


Overview of Project Nayuki software licenses

For the sake of convenience, this page lists nearly all of my published software projects, along with the programming languages and copyright license used in each one.

Many of my JavaScript/TypeScript programs are on-page demos that should not be adapted for other use without permission. A good number of my Java/Python/C/C++/C#/Rust programs are intended to be reusable library code, often MIT-licensed. Mostly everything else is all rights reserved. Please read my copyright info on how to request permission if you would like to use or modify my work.

In the rare case if there is a license disagreement between this index page and a project’s main page, then the project page’s license takes precedence.

Page/Project License Languages
Batch up new messages in Gmail for better productivityPublic domainJavaScript
Good Java idiomsPublic domainJava
Java BigInteger was made for RSA cryptographyPublic domainJava
How to implement the discrete Fourier transformPublic domainJava, JavaScript, TypeScript, Python, C, C++, C#, Rust, MATLAB
Next lexicographical permutation algorithmPublic domainJava, JavaScript, TypeScript, Python, C, C++, C#, Rust, Haskell, Mathematica, MATLAB
The versatile sieve of EratosthenesPublic domainPython, Java, C#, C++, C, Rust
AA tree setMIT LicenseJava, Python
AVL tree listMIT LicenseJava, JavaScript, TypeScript, Python, C++, C#, Rust
B-tree setMIT LicenseJava, Python, C++, Rust
Binary array setMIT LicenseJava, Python, C++, Rust
Binary indexed treeMIT LicenseJava, Python, C++, JavaScript, TypeScript, Rust
Binomial heapMIT LicenseJava, Python, C++, Rust
Bitcoin cryptography libraryMIT LicenseC++, Java, x86
BMP I/O library (Java)MIT LicenseJava
Compact hash map (Java)MIT LicenseJava
Cryptographic primitives in plain PythonMIT LicensePython
DEFLATE library (Java)MIT LicenseJava
Disjoint-set data structureMIT LicenseJava, JavaScript, TypeScript, Python, C++, C, C#, Rust
Dumb PNG output (Java)MIT LicenseJava
Elliptic curve point addition in projective coordinatesMIT LicensePython
Fast discrete cosine transform algorithmsMIT LicenseJava, Python, C, C++, JavaScript, TypeScript, C#, Rust
Fast Fourier transform in x86 assemblyMIT LicenseC, x86
Fast MD5 hash implementation in x86 assemblyMIT LicenseC, x86
Fast QR Code generator libraryMIT LicenseJava
Fast SHA-1 hash implementation in x86 assemblyMIT LicenseC, x86
Fast SHA-2 hashes in x86 assemblyMIT LicenseC, x86
Fast Whirlpool hash in x86 assemblyMIT LicenseC, x86
Free small FFT in multiple languagesMIT LicenseJava, JavaScript, TypeScript, Python, C, C++, C#, Rust
Git library (Java)MIT LicenseJava
JSON library (Java)MIT LicenseJava
Knuth-Morris-Pratt string matchingMIT LicenseJava, JavaScript, TypeScript, Python, C, C++, C#, Rust
Native hash functions for JavaMIT LicenseJava, C, x86
Pervasive Displays e-paper panel hardware driverMIT LicenseC++
Portable FloatMap format I/O (Java)MIT LicenseJava
QR Code generator libraryMIT LicenseJava, JavaScript, TypeScript, Python, C++, C, Rust, SVG
RC4 cipher in x86 assemblyMIT LicenseC, x86
Reference arithmetic codingMIT LicenseJava, Python, C++
Reference Huffman codingMIT LicenseJava, Python, C++
Simple DEFLATE decompressorMIT LicenseJava
Simple FLAC implementationMIT LicenseJava, Python
Simple GUI FLAC player (Java)MIT LicenseJava
Sliding window minimum/maximum algorithmMIT LicenseJava, Python, C++
Sorting algorithms demo (Java)MIT LicenseJava
sRGB transform libraryMIT LicenseJava, C, C++, Python, JavaScript, TypeScript
Tiny Encryption Algorithm in x86 assemblyMIT LicenseC, x86
Convex hull algorithmGNU LGPL 3+Java, JavaScript, TypeScript, Python, C++, C#
FLAC library (Java)GNU LGPL 3+Java
Smallest enclosing circleGNU LGPL 3+Java, JavaScript, TypeScript, Python, C#, C++
Tiny PNG OutputGNU LGPL 3+C, C++
CSC258 computer debuggerGNU GPL 3+Java, CSC258
Forcing a file’s CRC to any valueGNU GPL 3+Java, Python, Rust, C
Sinc-based image resamplerGNU GPL 3+Java
A math/programming view of Canada GST/HST credit calculationUnspecifiedJava
Binary counter in brainfuckUnspecifiedBrainfuck
Example of simplifying and improving codeUnspecifiedJava
Full screen clock (JavaScript)UnspecifiedHTML, SVG, CSS, JavaScript
NetPerSec (Nayuki’s version)UnspecifiedC++
1D barcode generator (JavaScript)All rights reservedTypeScript
AES cipher internals in ExcelAll rights reservedExcel, ODS
Animated floating graph nodesAll rights reservedTypeScript, SVG
Approximating Euler’s number correctlyAll rights reservedPython, Java
Automatic Caesar cipher breaker (JavaScript)All rights reservedJavaScript
Automatic Minesweeper solverAll rights reservedJava
Band-limited square wavesAll rights reservedPython, Java, JavaScript
Barrett reduction algorithmAll rights reservedJava, Python
Brainfuck interpreter (JavaScript)All rights reservedJavaScript, Brainfuck
Caesar cipher (JavaScript)All rights reservedJavaScript
Calculate divisors (JavaScript)All rights reservedJavaScript
Calculate GCD (JavaScript)All rights reservedTypeScript
Calculate prime factorization (JavaScript)All rights reservedJavaScript
Canada Tax-Free Savings Account simulator (JavaScript)All rights reservedJavaScript
Chemical equation balancer (JavaScript)All rights reservedTypeScript
Computing Wikipedia’s internal PageRanksAll rights reservedJava
DES cipher internals in ExcelAll rights reservedExcel, ODS
DWITE programming contest solutionsAll rights reservedJava
Encrypted backup client for DropboxAll rights reservedJava
Facebook anniversary ray traceAll rights reservedPOV-Ray
Factorize Gaussian integer (JavaScript)All rights reservedJavaScript, Java
Fast Fibonacci algorithmsAll rights reservedJava, C#, Python, Haskell
Fast skipping in a linear congruential generatorAll rights reservedJava, Python
Galois linear feedback shift registerAll rights reservedJava, Python
Gamma-aware image ditheringAll rights reservedJava
Gauss-Jordan elimination over any fieldAll rights reservedJava, Python
Gaussian blur demoAll rights reservedJavaScript, Java
GIF optimizer (Java)All rights reservedJava
GO Train acceleration analyzed by videoAll rights reservedJava, Python
Huffman-coding English wordsAll rights reservedJava
Image unshredder by annealingAll rights reservedJava, JavaScript
Iterated popcount results in 0 or 1All rights reservedPython, Java
Java Native Interface compared to Python/C APIAll rights reservedC, Java, Python
Karatsuba multiplicationAll rights reservedJava, Python
Knuth’s -yllion number notationAll rights reservedJava, Python
Lowest SHA-512 value by brute forceAll rights reservedC, x86, Python
MamIRC, the headless IRC clientAll rights reservedJava, JavaScript, CSS, Python
Master theorem solver (JavaScript)All rights reservedJavaScript
Montgomery reduction algorithmAll rights reservedJava, Python
Nanoblock modeling in POV-RayAll rights reservedPOV-Ray
Number-theoretic transform (integer DFT)All rights reservedPython, Java
NotepadCrypt format decrypter (Java)All rights reservedJava
Optimizing brainfuck compilerAll rights reservedPython
Optimal text segmentation for QR CodesAll rights reservedTypeScript
Panel de Pon puzzle solver (JavaScript)All rights reservedTypeScript, Java
Primitive recursive functionsAll rights reservedPython, Haskell, Java
Project Euler solutionsAll rights reservedJava, Python, Mathematica, Haskell
Propositional sequent calculus proverAll rights reservedTypeScript
Random password generator (JavaScript)All rights reservedJavaScript, CSS
Reed-Solomon error-correcting code decoderAll rights reservedJava, Python
Resizing images by areaAll rights reservedJavaScript
Simulated annealing demoAll rights reservedJava, JavaScript, C, x86
Symmetry sketcher (JavaScript)All rights reservedJavaScript
Tablet desk clockAll rights reservedJavaScript, Python, CSS, HTML
Tap to measure tempo (JavaScript)All rights reservedJavaScript
Triangle solver (JavaScript)All rights reservedJavaScript, HTML
Vigenère cipher (JavaScript)All rights reservedJavaScript
Windows timestamp accessor libraryAll rights reservedC#, Java, Python

More info