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.

Most of my JavaScript 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# 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
Free/libre/open source
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, Python, C, C++, C#, Rust, MATLAB
Next lexicographical permutation algorithmPublic domainJava, JavaScript, Python, C, C++, C#, Rust, Haskell, Mathematica, MATLAB
The versatile sieve of EratosthenesPublic domainPython, Java, C#, C++, C, Rust
AVL tree listMIT LicenseJava, JavaScript, Python, C++, C#, Rust
B-tree setMIT LicenseJava, Python, C++
Binary array setMIT LicenseJava, Python, C++, 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, Python, C++, C, C#, Rust
Dumb PNG output (Java)MIT LicenseJava
Fast discrete cosine transform algorithmsMIT LicenseJava, Python, C, C++, JavaScript, 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, Python, C, C++, C#, Rust
Git library (Java)MIT LicenseJava
JSON library (Java)MIT LicenseJava
Knuth-Morris-Pratt string matchingMIT LicenseJava, JavaScript, Python, C, C++, C#, Rust
Native hash functions for JavaMIT LicenseJava, C, x86
Portable FloatMap format I/O (Java)MIT LicenseJava
QR Code generator libraryMIT LicenseJava, JavaScript, Python, C++, C, Rust
RC4 cipher in x86 assemblyMIT LicenseC, x86
Reference arithmetic codingMIT LicenseJava, Python
Reference Huffman codingMIT LicenseJava, Python
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
Tiny Encryption Algorithm in x86 assemblyMIT LicenseC, x86
Convex hull algorithmGNU Lesser General Public License 3+Java, JavaScript, Python, C++, C#
FLAC library (Java)GNU Lesser General Public License 3+Java
Smallest enclosing circleGNU Lesser General Public License 3+Java, JavaScript, Python, C#, C++
Tiny PNG Output (C)GNU Lesser General Public License 3+C
CSC258 computer debuggerGNU General Public License 3+Java, CSC258
Forcing a file’s CRC to any valueGNU General Public License 3+Java, Python, C
Sinc-based image resamplerGNU General Public License 3+Java
All rights reserved
1D barcode generator (JavaScript)All rights reservedJavaScript
A math/programming view of Canada GST/HST credit calculationUnspecifiedJava
AES cipher internals in ExcelAll rights reservedExcel, ODS
Animated floating graph nodesAll rights reservedJavaScript
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
Binary counter in brainfuckUnspecifiedBrainfuck
Brainfuck interpreter (JavaScript)All rights reservedJavaScript
Caesar cipher (JavaScript)All rights reservedJavaScript
Calculate divisors (JavaScript)All rights reservedJavaScript
Calculate GCD (JavaScript)All rights reservedJavaScript
Calculate prime factorization (JavaScript)All rights reservedJavaScript
Canada Tax-Free Savings Account simulator (JavaScript)All rights reservedJavaScript
Chemical equation balancer (JavaScript)All rights reservedJavaScript
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
Example of simplifying and improving codeUnspecifiedJava
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
Full screen clock (JavaScript)UnspecifiedHTML, CSS, JavaScript
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
NetPerSec (Nayuki’s version)UnspecifiedC++
Number-theoretic transform (integer DFT)All rights reservedPython, Java
NotepadCrypt format decrypter (Java)All rights reservedJava
Optimizing brainfuck compilerAll rights reservedPython
Panel de Pon puzzle solver (JavaScript)All rights reservedJavaScript, Java
Primitive recursive functionsAll rights reservedPython, Haskell, Java
Project Euler solutionsAll rights reservedJava, Python, Mathematica, Haskell
Propositional sequent calculus proverAll rights reservedJavaScript
Random password generator (JavaScript)All rights reservedJavaScript, HTML
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