Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MaxwellBo/well-documented

📖 A collection of analyses, tutorials, walkthroughs and literate implementations of moderately complex standalone applications
https://github.com/MaxwellBo/well-documented

List: well-documented

awesome-list literate reference-implementation

Last synced: about 1 month ago
JSON representation

📖 A collection of analyses, tutorials, walkthroughs and literate implementations of moderately complex standalone applications

Awesome Lists containing this project

README

        

# well-documented
A collection of analyses, "tutorials", walkthroughs and literate implementations of moderately complex standalone applications.

NOTE: When I say "tutorial", it means I don't want to add tutorials like "How to make a React SPA". I want to add tutorials for things that most people have never considered making themselves, and cover aspects of the problem domain rather than the surrounding framework.

## Language agnostic

- [The Architecture of Open Source Applications](http://aosabook.org/en/index.html)
- [DOOM Engine source code review](http://fabiensanglard.net/doomIphone/doomClassicRenderer.php)
- [How I Start.](http://howistart.org/) - *"[A] mix between a collection of development tutorials and [setup guides]"*
- [Programs To Read](http://wiki.c2.com/?ProgramsToRead)

## Agda

- [Programming Language Foundations in Agda](https://plfa.github.io/)

## C

- [Selfie](https://github.com/cksystemsteaching/selfie) - *"An educational software system of a tiny self-compiling C compiler, a tiny self-executing MIPS emulator, and a tiny self-hosting MIPS hypervisor"*
- [Build Your Own Text Editor](http://viewsourcecode.org/snaptoken/kilo/) (with associated [Hacker News discussion](https://news.ycombinator.com/item?id=14046446))
- [Build Your Own Lisp](http://www.buildyourownlisp.com/contents)
- [Voc](http://pbat.ch/proj/voc/) - *"[A] physical model of the vocal tract"*
- [The Craft of Text Editing](http://www.finseth.com/craft/)
- [Kilo](https://github.com/antirez/kilo) - *"A text editor in less than 1000 LOC with syntax highlight and search"*
- [Raycasting](http://lodev.org/cgtutor/raycasting.html)
- [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)
- [TinyWM](http://incise.org/tinywm.html) - *A minimalistic, 50 line window manager*
- [Write your Own Virtual Machine](https://justinmeiners.github.io/lc3-vm/)

## C#

- [BitTorrent](http://seanjoflynn.com/research/bittorrent.html) - *"Building a BitTorrent client from scratch in C#"*

## C++

- [Design & Implementation of a Win32 Text Editor](http://www.catch22.net/tuts/neatpad)
- [Doom3 Source Code Review](http://fabiensanglard.net/doom3/)
- [Let's Make a Voxel Engine](https://sites.google.com/site/letsmakeavoxelengine/)
- [Physically Based Rendering: From Theory To Implementation](http://www.pbr-book.org/)

## Clojure

- [Ferret](https://github.com/nakkaya/ferret/blob/0.2.8/ferret.org) - *A "[compiler of] a restricted subset of the Clojure language to self contained ISO C++11"*
- [rhymes.clj](https://gist.github.com/ftrain/8655399) - *Annotated rhyming dictionary*

## Ruby

- [Rhizome](https://github.com/chrisseaton/rhizome) - *Rhizome is a paedagogical just-in-time compiler (JIT) for Ruby, implemented in pure Ruby.*

## Commodore 64 Assembly

- [A Mind is Born](https://linusakesson.net/scene/a-mind-is-born/) - *256 byte demo*

## Common Lisp

- [Axiom](http://www.axiom-developer.org/axiom-website/books.html) - *"The Scientific Computation System"*

## Coq

- [Writing a Formally-Verified Porn Browser in Coq and Haskell](http://www.michaelburge.us/2017/08/25/writing-a-formally-verified-porn-browser-in-coq.html)

## Elixir

- [An eInk display with Nerves & Elixir - Getting started with Inky](http://underjord.io/an-eink-display-with-nerves-elixir.html)

## Go

- [A Go implementation of Poly1305 that makes sense](https://blog.filippo.io/a-literate-go-implementation-of-poly1305/)
- [Database basics: writing a SQL database from scratch in Go](https://notes.eatonphil.com/database-basics.html)
- [How to write a (toy) JVM](https://zserge.com/posts/jvm/)

## Haskell

- [Corrode](https://github.com/jameysharp/corrode/blob/master/src/Language/Rust/Corrode/C.md) - *A C to Rust transpiler*
- [Write You a Scheme](https://wespiser.com/writings/wyas/home.html)
- [Write You a Haskell](http://dev.stephendiehl.com/fun/)
- The "Writing" section of [Reflecting on Haskell in 2016](http://www.stephendiehl.com/posts/haskell_2017.html)
- [Teleport](http://bollu.github.io/teleport/) - *"How to write a small, useful command line application in Haskell"*
- [Hindley-Damas-Milner tutorial](https://github.com/quchen/articles/tree/master/hindley-milner)
- [Typing the technical interview](https://aphyr.com/posts/342-typing-the-technical-interview) - *type-level programming abomination*
- [Glassery](http://oleg.fi/gists/posts/2017-04-18-glassery.html) - *Optics library*
- [A Tutorial Implementation of a Dependently Typed Lambda Calculus](https://www.andres-loeh.de/LambdaPi/)
- [Implementing a JIT Compiled Language with Haskell and LLVM](http://www.stephendiehl.com/llvm/)
- [kinder-functor](https://github.com/rampion/kinder-functor) - *"An alternate definition of Haskell's Functor typeclass"*
- [Rolling your Own Blockchain in Haskell](http://www.michaelburge.us/2017/08/17/rolling-your-own-blockchain.html)
- [Nanochain](https://github.com/adjoint-io/nanochain) - *"A minimal viable blockchain to demonstrate simple blockchain principles."*
- [Let's make a GTK Video Player with Haskell](https://lettier.github.io/posts/2017-08-30-haskell-gtk-video-player.html)

## JavaScript

- [The Super Tiny Compiler](https://github.com/thejameskyle/the-super-tiny-compiler)
- [A first-person engine in 265 lines](http://www.playfuljs.com/a-first-person-engine-in-265-lines/)
- [Build your own React](https://pomb.us/build-your-own-react/)
- [Git in six hundred words](http://gitlet.maryrosecook.com/docs/gitlet.html)

## OpenType

- [Let's make a small font](http://processingjs.nihongoresources.com/the_smallest_font/)

## Python

- [(How to Write a (Lisp) Interpreter (in Python))](http://norvig.com/lispy.html)
- [How to Write a Spelling Corrector](http://norvig.com/spell-correct.html)
- [tinychain](https://github.com/jamesob/tinychain) - *"A pocket-sized implementation of Bitcoin"*
- [Let's Build a Web Server](https://ruslanspivak.com/lsbaws-part1/)
- [Let's Build a Simple Interpreter](https://ruslanspivak.com/lsbasi-part1/)
- [Bytecode compilers and interpreters](https://bernsteinbear.com/blog/bytecode-interpreters/)
- [List of IPython (Jupyter) Notebooks by Peter Norvig](http://norvig.com/ipython/README.html)
- [Python Prolog Interpreter](https://github.com/photonlines/Python-Prolog-Interpreter)

## Rust

- [Building a Multithreaded Web Server](https://doc.rust-lang.org/beta/book/second-edition/ch20-00-final-project-a-web-server.html) - *TODO: Update this link when it comes out of beta*
- [Writing an OS in Rust](http://os.phil-opp.com/)
- [Let's build a browser engine!](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)
- [Speedy Desktop Apps With GTK and Rust](https://nora.codes/tutorial/speedy-desktop-apps-with-gtk-and-rust/)
- [Making our own executable packer](https://fasterthanli.me/blog/2020/whats-in-a-linux-executable/)
- [ToyDB](https://github.com/erikgrinaker/toydb/blob/master/docs/architecture.md)

## Scheme

- [Let's build a compiler](https://generalproblem.net/lets_build_a_compiler/01-starting-out/)