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 number of my Java 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#, MATLAB
Next lexicographical permutation algorithmPublic domainJava, JavaScript, Python, C, C++, C#, Mathematica, Haskell
The versatile sieve of EratosthenesPublic domainPython, Java, C#, C
AVL tree listMIT LicenseJava, JavaScript, Python, C++
Binary array setMIT LicenseJava, Python, C++
Binomial heapMIT LicenseJava, Python, C++
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#
Fast Fourier transform in x86 assemblyMIT LicenseC, x86
Fast MD5 hash implementation in x86 assemblyMIT LicenseC, x86
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#
JSON library (Java)MIT LicenseJava
Knuth-Morris-Pratt string matchingMIT LicenseJava, JavaScript, Python, C, C++, C#
Portable FloatMap format I/O (Java)MIT LicenseJava
QR Code generator libraryMIT LicenseJava, JavaScript, Python, C++
RC4 cipher in x86 assemblyMIT LicenseC, x86
Reference arithmetic codingMIT LicenseJava, Python
Reference Huffman codingMIT LicenseJava, Python
Simple DEFLATE decompressorMIT LicenseJava
Sorting algorithms demo (Java)MIT LicenseJava
Tiny Encryption Algorithm in x86 assemblyMIT LicenseC, x86
CSC258 computer debuggerGNU Public License 3+Java, CSC258
Forcing a file’s CRC to any valueGNU Public License 3+Java, Python, C
Native hash functions for JavaGNU Public License 3+Java, C, x86
Sinc-based image resamplerGNU Public License 3+Java
Smallest enclosing circleGNU Public License 3+Java, JavaScript, Python, C#
Tiny PNG Output (C)GNU Public License 3+C
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
Dumb PNG output (Java)All rights reservedJava
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 field (Java)All rights reservedJava
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++
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
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