Compare commits

...

106 Commits

Author SHA1 Message Date
Paul Kuruvilla
0e4f2a7a74
Merge pull request #1017 from DanyRenaudier/patch-1
Update README.md
2024-02-27 17:19:52 +00:00
DanyRenaudier
9bd74f0cef
Update README.md
Build a simple 2D physics engine for JavaScript games link corrected
2024-02-27 13:50:33 -03:00
Paul Kuruvilla
6e52d1d6ba
Merge pull request #1014 from karandeeppotato/issue#1013
Fixed broken link
2024-02-21 19:04:09 +00:00
karandeeppotato
30c11bd774 Fixed broken link
The broken link for "Ruby: Build your own fast, persistent KV store in Ruby" is replaced with a working link
2024-02-21 09:48:33 +05:30
Paul Kuruvilla
276f1c6075
Merge pull request #1012 from aastik7/patch-1
Update README.md
2024-02-19 11:57:44 +00:00
Aastik
fe005dc52d
Update README.md
Changed the link for telegram bot with python, as the older link had outdated methods and incompatibilites. Replaced it with a more comprehensive and updated tutorial by freecodecamp.
2024-02-18 05:57:39 +05:30
Paul Kuruvilla
0f6fd6b8b0
Merge pull request #1007 from erwanvivien/patch-1
fix: using https instead of http for createcommons
2024-02-09 13:57:09 +00:00
erwanvivien
a9278a147e fix: using https instead of http for createcommons 2024-02-09 13:01:13 +01:00
Paul Kuruvilla
3f97f8d90a
Merge pull request #996 from joshburnsxyz/patch-1
Update broken git plugin tutorial link
2024-01-25 13:41:45 +00:00
Josh Burns
aa7d2f5715
Update broken git plugin tutorial link 2024-01-24 13:30:18 +11:00
Paul Kuruvilla
24a385c09a
Merge pull request #977 from ajaypremshankar/master
Fixed broken link for 'Command line tool in Rust'
2023-12-29 16:48:25 +00:00
Ajay Prem Shankar
7d66285eba
Fixed broken link for 'Command line tool in Rust' 2023-12-29 09:38:32 +05:30
Paul Kuruvilla
e92dc3a6d5
Merge pull request #954 from byo-books/byo-4
Add Build Your Own Web Server From Scratch In JavaScript
2023-11-07 12:12:27 +00:00
root
ab20475e87 Add Build Your Own Web Server From Scratch In JavaScript. 2023-11-07 18:58:30 +08:00
Paul Kuruvilla
f645ec563b
Merge pull request #950 from codecrafters-io/rust-tokio-and-substrate
Two rust tutorials
2023-10-29 21:47:34 +00:00
Matthew
4a5ee9408e
Update README.md
added some rust material
- tokio's build your own redis 
- substrate's build your own blockhain
2023-10-29 17:43:06 -04:00
Paul Kuruvilla
64621d7ffb
Merge pull request #934 from Gokul2003g/broken-link
Fix: Replaced a broken link with alternative from smashingmagazine.com
2023-10-26 21:04:49 +01:00
Sarup Banskota
52d7900223
Update README.md 2023-10-16 19:18:16 +08:00
Sarup Banskota
56c1ac727d
Update README.md 2023-10-13 16:06:00 +08:00
Paul Kuruvilla
15f8c88678
Merge pull request #942 from sj902/fix-byo-db
Make links for databases alphabetical
2023-10-10 16:28:01 +01:00
sj902
dac0bcf0e9 Make links for databases alphabetical 2023-10-10 20:55:49 +05:30
Paul Kuruvilla
caec0ee95b
Merge pull request #941 from rhaeguard/master
Add Building Regex Engine in Go tutorial
2023-10-09 12:25:24 +01:00
Mansur
7a1d63a25c Add Building Regex Engine in Go tutorial 2023-10-07 02:59:31 -06:00
Gokul2003g
b15a0713d6 Fix: Replaced a broken link with alternative from smashingmagazine.com 2023-09-30 12:24:59 +05:30
Paul Kuruvilla
ce73e251ef
Merge pull request #933 from ahmedash95/patch-1
Add Build your own Redis from scratch in Go
2023-09-20 18:36:20 +01:00
Ahmed Ammar
5b416b5d4e
Add Build your own Redis from scratch in Go 2023-09-20 19:31:11 +02:00
Paul Kuruvilla
a7114fb8bb
Merge pull request #926 from xunterr/master
Article "Java: How To Make a Scary Russian Twitter Bot With Java" has been removed
2023-08-08 20:31:06 +01:00
xunterr
b5db085933
Article "Java: How To Make a Scary Russian Twitter Bot With Java" has been removed
Вeleted the article because it was removed from Medium
2023-08-08 22:23:22 +03:00
M. Tolga Cangöz
647f2a4402
Update README.md (#916) 2023-07-12 10:42:29 +08:00
Paul Kuruvilla
c4970fabdb
Merge pull request #903 from hasanisaeed/master
Write a `Shell` in `C`
2023-06-26 05:48:49 +01:00
Louis Nguyen
52c8e0801f
Update README.md 2023-06-05 23:29:06 +07:00
Paul Kuruvilla
4fbbb9570e
Update link 2023-05-31 15:05:02 +01:00
Kasun Vithanage
5981ca72d4
Update URL for Let's Create a Simple Load Balancer With Go (#878) 2023-05-28 21:56:01 +08:00
build-your-own.org
0db9fcbd82
Update the Build Your Own Compiler book URL. (#904)
Co-authored-by: root <root@localhost>
2023-05-22 18:50:58 +08:00
Louis Nguyen
193c40cb68
update banner's link 2023-05-22 13:18:39 +07:00
Saeed Hasani Borzadaran
1d60feb585
Add Write a Shell in C 2023-05-20 21:01:31 +03:30
Vencyr Laurence Imbo Amores
e77a3edcdb
Update README.md 2023-05-18 17:53:25 +08:00
Louis Nguyen
995b06d4cd
Update README.md 2023-05-18 16:44:19 +07:00
Louis Nguyen
1ab690c24f
Update README.md with banner GIF 2023-05-18 16:40:46 +07:00
Paul Kuruvilla
0badba4be1
Merge pull request #893 from peiyuanix/master
add Build your own VPN/Virtual Switch
2023-05-10 01:26:39 +01:00
Liu Peiyuan
87d0bea7ec Build your own VPN/Virtual Switch 2023-05-09 06:57:31 -04:00
Paul Kuruvilla
4824578550
Merge pull request #892 from 9bany/master
Add: Build your own - Adblocker
2023-05-09 10:01:40 +01:00
9bany
086afcac19 add Build Your Own AdBlocker in (Literally) 10 Minutes 2023-05-09 08:18:18 +07:00
Paul Kuruvilla
61fdc1c6d0
Merge pull request #864 from HexadecimalByte/master
Add the Game Engine Series by The Cherno
2023-03-07 13:52:01 +00:00
HexadecimalByte
4c645a433a
Add the Game Engine Series by The Cherno 2023-03-07 08:02:37 +01:00
Paul Kuruvilla
df225b342e
Merge pull request #859 from byo-books/byo-2
Add the database, regex, and interpreter links from build-your-own.org.
2023-02-27 19:27:50 +00:00
root
675af15d79 Add the database, regex, and interpreter links from build-your-own.org. 2023-02-28 01:29:53 +08:00
Paul Kuruvilla
b5ca0911b9
Merge pull request #855 from dineshgowda24/patch-1
Add KV store
2023-02-16 11:17:42 +00:00
dineshgowda24
d43fcaeda4 move the listing from docker to database 2023-02-15 02:37:15 +05:30
dineshgowda24
ece0157b3c Add kv store in ruby 2023-02-15 01:17:20 +05:30
Paul Kuruvilla
8153e763cf
Merge pull request #853 from htcrefactor/patch-1
Fix typo
2023-02-04 14:24:56 +00:00
Hyung-Taik Choi
8f780cba35
Fix typo
Fixed a simple punctuation error
2023-02-04 15:45:40 +09:00
Paul Kuruvilla
15066dd894
Add let's write a Lisp 2023-02-02 09:19:31 +00:00
Paul Kuruvilla
2ca60944c1
Update README.md 2023-02-02 09:15:50 +00:00
Paul Kuruvilla
2d75e52deb
Add Rust CLI tools entries 2023-02-02 09:11:47 +00:00
Paul Kuruvilla
6556ff4172
Merge pull request #551 from paralysedforce/master
Add Ray Tracing in One Weekend
2023-01-31 07:44:38 +00:00
Paul Kuruvilla
37e9e694b8
Minor formatting changes 2023-01-31 07:44:24 +00:00
Paul Kuruvilla
6d4108551a
Add https://osblog.stephenmarz.com/ 2023-01-31 07:42:00 +00:00
Paul Kuruvilla
b6ad806919
Merge pull request #542 from nikital/nikital-ugit
Add link to "ugit: Building Git Yourself"
2023-01-31 07:38:01 +00:00
Paul Kuruvilla
8bf9cd5643
Merge pull request #849 from mzahran001/patch-1
[ADD] Adding Andrej Karpathy series
2023-01-31 07:30:46 +00:00
Paul Kuruvilla
6c64825a99
Minor formatting change 2023-01-31 07:30:25 +00:00
Paul Kuruvilla
903b2a4985
Merge pull request #821 from sujaldev/master
Create a category for web browsers
2023-01-31 07:29:06 +00:00
Paul Kuruvilla
534ee2cd65
Add https://www.chinedufn.com/3d-webgl-basic-water-tutorial/ 2023-01-31 07:27:58 +00:00
Paul Kuruvilla
68f9855324
Update README.md 2023-01-31 07:24:54 +00:00
Mohamed Zahran
334e91d3d4
[ADD] Adding Andrej Karpathy series
Adding [Andrej Karpathy's series Neural Networks: Zero to Hero ](
https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ )
2023-01-30 14:24:08 +02:00
Paul Kuruvilla
cb884b674e
Update primary programming language 2023-01-30 06:38:17 +00:00
Paul Kuruvilla
4219a10894
Add build your own CDN link 2023-01-30 06:36:36 +00:00
Paul Kuruvilla
671ff8ae95
Merge pull request #846 from ConanChou/master
update the link for Hecto: Build your own text editor in Rust
2023-01-30 06:34:25 +00:00
Sarup Banskota
0f4d4640e4
Update banner 2023-01-23 21:27:38 +08:00
Paul Kuruvilla
b466b1da21
Merge pull request #691 from fake-rookie/master
delete a useless item
2023-01-20 17:48:00 +00:00
fake-rookie
eabeeaac5e
Merge branch 'codecrafters-io:master' into master 2023-01-20 21:37:34 +08:00
Conan
987a60720c
update the link for Hecto: Build your own text editor in Rust 2023-01-19 20:31:56 -05:00
Paul Kuruvilla
4b7923f09f
Merge pull request #841 from mister-goo/master
Add Build Your Own Redis from Scratch with C/C++
2023-01-02 14:39:58 +05:30
root
03c7dda065 Add Build Your Own Redis from Scratch with C/C++ 2023-01-01 00:10:43 +08:00
Paul Kuruvilla
bf8c19d7c7
Merge pull request #833 from lakuapik/patch-1
Add linux from scratch
2022-12-19 17:56:54 +00:00
David Adi Nugroho
69be78cf70
Update LFS link 2022-12-19 17:20:01 +07:00
David Adi Nugroho
0bea81df3a
Add linux from scratch 2022-12-17 17:20:55 +07:00
Paul Kuruvilla
d9bacab0e1
Merge pull request #831 from Aegwenia/patch-1
Added two links (one previously available).
2022-12-13 17:37:51 +00:00
Bezděk Miroslav
608ac57ebf
Added two links (one previously available). 2022-12-11 09:34:18 +01:00
Paul Kuruvilla
765ae1c030
Merge pull request #828 from kevmo314/patch-1
Add Video Encoding from Scratch
2022-12-08 09:54:49 +00:00
Cedric Martens
25b8f74fe0
Remove broken link (#830)
This link is broken and lands on a 404
2022-12-06 01:15:46 +07:00
fake-rookie
c73a50bb60
Merge branch 'codecrafters-io:master' into master 2022-12-05 01:05:07 +08:00
Kevin Wang
41d95d81c1
Add Video Encoding from Scratch 2022-12-02 20:52:58 -08:00
Paul Kuruvilla
cf9952209f
Merge pull request #827 from ishuah/golang-terminal-emulator
Add link to Golang terminal emulator article
2022-12-02 07:17:18 +00:00
Ishuah E Kariuki
85d6aacb3a
Add link to Golang terminal emulator article 2022-11-29 17:04:38 +03:00
Paul Kuruvilla
c0946813d8
Merge pull request #825 from joshburnsxyz/master
add link to git plugin tutorial
2022-11-28 04:34:50 +00:00
Josh Burns
b5e5bb677b
moved git plugin tutorial to uncategorised 2022-11-27 17:55:46 +11:00
Sarup Banskota
8e628eb428
Update banner to use GIF 2022-11-26 17:57:18 +07:00
Josh Burns
31bac798cc
add link to git plugin tutorial 2022-11-25 13:16:07 +11:00
Sarup Banskota
68634bfe2c
Update banner + tweak header format 2022-11-24 17:41:51 +07:00
Sujal Singh
1edad6cabb
create a category for web browsers 2022-11-10 22:26:48 +05:30
fake-rookie
1ae173a96a
Merge branch 'codecrafters-io:master' into master 2022-11-02 16:00:04 +08:00
fake-rookie
5a314058f0
Merge branch 'codecrafters-io:master' into master 2022-10-12 15:48:08 +08:00
fake-rookie
76f4404421
Merge branch 'codecrafters-io:master' into master 2022-09-29 16:15:57 +08:00
fake-rookie
69b3feb930
Merge branch 'codecrafters-io:master' into master 2022-09-15 15:42:55 +08:00
fake-rookie
2bc2dcaa8e
Merge branch 'codecrafters-io:master' into master 2022-09-07 21:06:39 +08:00
fake-rookie
e2b7eb8a6d
Merge branch 'codecrafters-io:master' into master 2022-08-05 16:04:59 +08:00
fake-rookie
d97014ed49
Merge branch 'codecrafters-io:master' into master 2022-07-23 00:05:58 +08:00
fake-rookie
0796177e8e
Merge branch 'codecrafters-io:master' into master 2022-07-14 21:28:22 +08:00
fake-rookie
0462634959
Merge branch 'codecrafters-io:master' into master 2022-07-08 14:06:23 +08:00
fake-rookie
f2b2f23a1f
Merge branch 'codecrafters-io:master' into master 2022-06-09 03:34:36 +08:00
fake-rookie
0e87972902
Merge branch 'codecrafters-io:master' into master 2022-05-22 00:45:19 +08:00
fake-rookie
615fb23ef8
Merge branch 'danistefanovic:master' into master 2022-02-21 00:48:46 +08:00
fake-rookie
415445a9f6
delete a useless item
that item is nothing.
2021-12-26 23:38:14 +08:00
Vyas Alwar
dd7f3f7f9b
Update README.md
Add Ray Tracing in One Weekend
2020-11-16 20:34:55 -06:00
Nikita Leshenko
bc7af89fc1
Add link to "ugit: Building Git Yourself" 2020-10-11 14:27:30 +03:00

View File

@ -1,10 +1,12 @@
[![CodeCrafters.io](https://codecrafters.vercel.app/for/github-repo-banner.png)](https://codecrafters.io/github-banner)
[![Banner](https://codecrafters.io/images/byox-banner.gif)](https://codecrafters.io/github-banner)
This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch. It's a great way to learn. Submissions welcome, just send a PR.
## Table of Contents: Build your own X
This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch.
> *What I cannot create, I do not understand — Richard Feynman.*
## Table of Contents: Build your own X
It's a great way to learn.
* [3D Renderer](#build-your-own-3d-renderer)
* [Augmented Reality](#build-your-own-augmented-reality)
@ -30,6 +32,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [Text Editor](#build-your-own-text-editor)
* [Visual Recognition System](#build-your-own-visual-recognition-system)
* [Voxel Engine](#build-your-own-voxel-engine)
* [Web Browser](#build-your-own-web-browser)
* [Web Server](#build-your-own-web-server)
* [Uncategorized](#uncategorized)
@ -41,6 +44,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C++**: _How OpenGL works: software rendering in 500 lines of code_](https://github.com/ssloy/tinyrenderer/wiki)
* [**C++**: _Raycasting engine of Wolfenstein 3D_](http://lodev.org/cgtutor/raycasting.html)
* [**C++**: _Physically Based Rendering:From Theory To Implementation_](http://www.pbr-book.org/)
* [**C++**: _Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html)
* [**C++**: _Rasterization: a Practical Implementation_](https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/overview-rasterization-algorithm)
* [**C# / TypeScript / JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript_](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/)
* [**Java / JavaScript**: _Build your own 3D renderer_](https://avik-das.github.io/build-your-own-raytracer/)
@ -78,7 +82,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**JavaScript**: _Learn & Build a JavaScript Blockchain_](https://medium.com/digital-alchemy-holdings/learn-build-a-javascript-blockchain-part-1-ca61c285821e)
* [**JavaScript**: _Creating a blockchain with JavaScript_](https://github.com/SavjeeTutorials/SavjeeCoin)
* [**JavaScript**: _How To Launch Your Own Production-Ready Cryptocurrency_](https://hackernoon.com/how-to-launch-your-own-production-ready-cryptocurrency-ab97cb773371)
* [**JavaScript**: _Writing a Blockchain in Node.js_](https://www.hackdoor.io/articles/writing-a-blockchain-in-nodejs-6512fec33307)
* [**JavaScript**: _Writing a Blockchain in Node.js_](https://www.smashingmagazine.com/2020/02/cryptocurrency-blockchain-node-js/)
* [**Kotlin**: _Lets implement a cryptocurrency in Kotlin_](https://medium.com/@vasilyf/lets-implement-a-cryptocurrency-in-kotlin-part-1-blockchain-8704069f8580)
* [**Python**: _Learn Blockchains by Building One_](https://hackernoon.com/learn-blockchains-by-building-one-117428612f46)
* [**Python**: _Build your own blockchain: a Python tutorial_](http://ecomunsing.com/build-your-own-blockchain)
@ -88,11 +92,12 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Scala**: _How to build a simple actor-based blockchain_](https://medium.freecodecamp.org/how-to-build-a-simple-actor-based-blockchain-aac1e996c177)
* [**TypeScript**: _Naivecoin: a tutorial for building a cryptocurrency_](https://lhartikk.github.io/)
* [**TypeScript**: _NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus_](https://naivecoinstake.learn.uno/)
* [**Rust**: _Building A Blockchain in Rust & Substrate_](https://hackernoon.com/building-a-blockchain-in-rust-and-substrate-a-step-by-step-guide-for-developers-kc223ybp)
#### Build your own `Bot`
* [**Haskell**: _Roll your own IRC bot_](https://wiki.haskell.org/Roll_your_own_IRC_bot)
* [**Java**: _How To Make a Scary Russian Twitter Bot With Java_](https://medium.com/@SeloSlav/how-to-make-a-scary-russian-twitter-bot-with-java-b7b62768a3ac)
* [**Node.js**: _Creating a Simple Facebook Messenger AI Bot with API.ai in Node.js_](https://tutorials.botsfloor.com/creating-a-simple-facebook-messenger-ai-bot-with-api-ai-in-node-js-50ae2fa5c80d)
* [**Node.js**: _How to make a responsive telegram bot_](https://www.sohamkamani.com/blog/2016/09/21/making-a-telegram-bot/)
* [**Node.js**: _Create a Discord bot_](https://discordjs.guide/)
@ -102,7 +107,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Python**: _How to build a Slack Bot with Python using Slack Events API & Django under 20 minute_](https://medium.com/freehunch/how-to-build-a-slack-bot-with-python-using-slack-events-api-django-under-20-minute-code-included-269c3a9bf64e)
* [**Python**: _Build a Reddit Bot_](http://pythonforengineers.com/build-a-reddit-bot-part-1/)
* [**Python**: _How To Make A Reddit Bot_](https://www.youtube.com/watch?v=krTUf7BpTc0) [video]
* [**Python**: _How To Create a Telegram Bot Using Python_](https://khashtamov.com/en/how-to-create-a-telegram-bot-using-python/)
* [**Python**: _How To Create a Telegram Bot Using Python_](https://www.freecodecamp.org/news/how-to-create-a-telegram-bot-using-python/)
* [**Python**: _Create a Twitter Bot in Python Using Tweepy_](https://medium.freecodecamp.org/creating-a-twitter-bot-in-python-with-tweepy-ac524157a607)
* [**Python**: _Creating Reddit Bot with Python & PRAW_](https://www.youtube.com/playlist?list=PLIFBTFgFpoJ9vmYYlfxRFV6U_XhG-4fpP) [video]
* [**R**: _Build A Cryptocurrency Trading Bot with R_](https://towardsdatascience.com/build-a-cryptocurrency-trading-bot-with-r-1445c429e1b1)
@ -116,17 +121,24 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Go**: _Go CLI tutorial: fortune clone_](https://flaviocopes.com/go-tutorial-fortune/)
* [**Nim**: _Writing a stow alternative to manage dotfiles_](https://xmonader.github.io/nimdays/day06_nistow.html)
* [**Node.js**: _Create a CLI tool in Javascript_](https://citw.dev/tutorial/create-your-own-cli-tool)
* [**Rust**: _Command line apps in Rust_](https://rust-cli.github.io/book/index.html)
* [**Rust**: _Writing a Command Line Tool in Rust_](https://mattgathu.dev/2017/08/29/writing-cli-app-rust.html)
#### Build your own `Database`
* [**C**: _Let's Build a Simple Database_](https://cstack.github.io/db_tutorial/)
* [**C++**: _Implementing a Key-Value Store_](http://codecapsule.com/2012/11/07/ikvs-implementing-a-key-value-store-table-of-contents/)
* [**C++**: _Build Your Own Redis from Scratch_](https://build-your-own.org/redis)
* [**C#**: _Build Your Own Database_](https://www.codeproject.com/Articles/1029838/Build-Your-Own-Database)
* [**Clojure**: _An Archaeology-Inspired Database_](http://aosabook.org/en/500L/an-archaeology-inspired-database.html)
* [**Crystal**: _Why you should build your own NoSQL Database_](https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5)
* [**Go**: _Build Your Own Database from Scratch: Persistence, Indexing, Concurrency_](https://build-your-own.org/database/)
* [**Go**: _Build Your Own Redis from Scratch](https://www.build-redis-from-scratch.dev/)
* [**JavaScript**: _Dagoba: an in-memory graph database_](http://aosabook.org/en/500L/dagoba-an-in-memory-graph-database.html)
* [**Python**: _DBDB: Dog Bed Database_](http://aosabook.org/en/500L/dbdb-dog-bed-database.html)
* [**Python**: _Write your own miniature Redis with Python_](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/)
* [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dineshgowda.com/posts/build-your-own-persistent-kv-store/)
* [**Rust**: _Build your own Redis client and server_](https://tokio.rs/tokio/tutorial/setup)
#### Build your own `Docker`
@ -139,7 +151,8 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
#### Build your own `Emulator / Virtual Machine`
* [**C**: _Virtual machine in C_](https://blog.felixangell.com/virtual-machine-in-c/)
* [**C**: _Home-grown bytecode interpreters_](https://medium.com/bumble-tech/home-grown-bytecode-interpreters-51e12d59b25c)
* [**C**: _Virtual machine in C_](http://web.archive.org/web/20200121100942/https://blog.felixangell.com/virtual-machine-in-c/)
* [**C**: _Write your Own Virtual Machine_](https://justinmeiners.github.io/lc3-vm/)
* [**C**: _Writing a Game Boy emulator, Cinoop_](https://cturt.github.io/cinoop.html)
* [**C++**: _How to write an emulator (CHIP-8 interpreter)_](http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/)
@ -150,6 +163,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Common Lisp**: _CHIP-8 in Common Lisp_](http://stevelosh.com/blog/2016/12/chip8-cpu/)
* [**JavaScript**: _GameBoy Emulation in JavaScript_](http://imrannazar.com/GameBoy-Emulation-in-JavaScript)
* [**Python**: _Emulation Basics: Write your own Chip 8 Emulator/Interpreter_](http://omokute.blogspot.com.br/2012/06/emulation-basics-write-your-own-chip-8.html)
* [**Rust**: _0dmg: Learning Rust by building a partial Game Boy emulator_](https://jeremybanks.github.io/0dmg/)
#### Build your own `Front-end Framework / Library`
@ -214,12 +228,14 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**JavaScript**: _Build GIT - Learn GIT_](https://kushagra.dev/blog/build-git-learn-git/)
* [**Python**: _Just enough of a Git client to create a repo, commit, and push itself to GitHub_](https://benhoyt.com/writings/pygit/)
* [**Python**: _Write yourself a Git!_](https://wyag.thb.lt/)
* [**Python**: _ugit: Learn Git Internals by Building Git Yourself_](https://www.leshenko.net/p/ugit/)
* [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby)
#### Build your own `Network Stack`
* [**C**: _Beej's Guide to Network Programming_](http://beej.us/guide/bgnet/)
* [**C**: _Let's code a TCP/IP stack_](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/)
* [**C / Python**: _Build your own VPN/Virtual Switch_](https://github.com/peiyuanix/build-your-own-zerotier)
* [**Ruby**: _How to build a network stack in Ruby_](https://medium.com/geckoboard-under-the-hood/how-to-build-a-network-stack-in-ruby-f73aeb1b661b)
#### Build your own `Neural Network`
@ -237,6 +253,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Python**: _Traffic signs classification with a convolutional network_](https://navoshta.com/traffic-signs-classification/)
* [**Python**: _Generate Music using LSTM Neural Network in Keras_](https://towardsdatascience.com/how-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5)
* [**Python**: _An Introduction to Convolutional Neural Networks_](https://victorzhou.com/blog/intro-to-cnns-part-1/)
* [**Python**: _Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ)
#### Build your own `Operating System`
@ -257,6 +274,8 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C++**: _Write your own Operating System_](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video]
* [**C++**: _Writing a Bootloader_](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/)
* [**Rust**: _Writing an OS in Rust_](https://os.phil-opp.com/)
* [**Rust**: _Add RISC-V Rust Operating System Tutorial_](https://osblog.stephenmarz.com/)
* [**(any)**: Linux from scratch](https://linuxfromscratch.org/lfs)
#### Build your own `Physics Engine`
@ -266,7 +285,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C++**: _3D Physics Engine Tutorial_](https://www.youtube.com/playlist?list=PLEETnX-uPtBXm1KEr_2zQ6K_0hoGH6JJ0) [video]
* [**JavaScript**: _How Physics Engines Work_](http://buildnewgames.com/gamephysics/)
* [**JavaScript**: _Broad Phase Collision Detection Using Spatial Partitioning_](http://buildnewgames.com/broad-phase-collision-detection/)
* [**JavaScript**: _Build a simple 2D physics engine for JavaScript games_](https://www.ibm.com/developerworks/library/wa-build2dphysicsengine/index.html)
* [**JavaScript**: _Build a simple 2D physics engine for JavaScript games_](https://developer.ibm.com/tutorials/wa-build2dphysicsengine/?mhsrc=ibmsearch_a&mhq=2dphysic)
#### Build your own `Programming Language`
@ -295,6 +314,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**JavaScript**: _The Super Tiny Interpreter_](https://github.com/keyanzhang/the-super-tiny-interpreter)
* [**JavaScript**: _Little Lisp interpreter_](https://maryrosecook.com/blog/post/little-lisp-interpreter)
* [**JavaScript**: _How to implement a programming language in JavaScript_](http://lisperator.net/pltut/)
* [**JavaScript**: _Lets go write a Lisp_](https://idiocy.org/lets-go-write-a-lisp/part-1.html)
* [**OCaml**: _Writing a C Compiler_](https://norasandler.com/2017/11/29/Write-a-Compiler.html)
* [**OCaml**: _Writing a Lisp, the series_](https://bernsteinbear.com/blog/lisp/)
* [**Pascal**: _Let's Build a Compiler_](https://compilers.iecc.com/crenshaw/)
@ -303,6 +323,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Python**: _How to Write a Lisp Interpreter in Python_](http://norvig.com/lispy.html)
* [**Python**: _Lets Build A Simple Interpreter_](https://ruslanspivak.com/lsbasi-part1/)
* [**Python**: _Make Your Own Simple Interpreted Programming Language_](https://www.youtube.com/watch?v=dj9CBS3ikGA&list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD&index=1) [video]
* [**Python**: _From Source Code To Machine Code: Build Your Own Compiler From Scratch_](https://build-your-own.org/compiler/)
* [**Racket**: _Beautiful Racket: How to make your own programming languages with Racket_](https://beautifulracket.com/)
* [**Ruby**: _A Compiler From Scratch_](https://www.destroyallsoftware.com/screencasts/catalog/a-compiler-from-scratch)
* [**Ruby**: _Markdown compiler from scratch in Ruby_](https://blog.beezwax.net/2017/07/07/writing-a-markdown-compiler/)
@ -315,10 +336,12 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C**: _A Regular Expression Matcher_](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html)
* [**C**: _Regular Expression Matching Can Be Simple And Fast_](https://swtch.com/~rsc/regexp/regexp1.html)
* [**Go**: _How to build a regex engine from scratch_](https://rhaeguard.github.io/posts/regex)
* [**JavaScript**: _Build a Regex Engine in Less than 40 Lines of Code_](https://nickdrane.com/build-your-own-regex/)
* [**JavaScript**: _How to implement regular expressions in functional javascript using derivatives_](http://dpk.io/dregs/toydregs)
* [**JavaScript**: _Implementing a Regular Expression Engine_](https://deniskyashif.com/2019/02/17/implementing-a-regular-expression-engine/)
* [**Perl**: _How Regexes Work_](https://perl.plover.com/Regex/article.html)
* [**Python**: _Build Your Own Regular Expression Engines: Backtracking, NFA, DFA_](https://build-your-own.org/b2a/r0_intro)
* [**Scala**: _No Magic: Regular Expressions_](https://rcoh.svbtle.com/no-magic-regular-expressions)
#### Build your own `Search Engine`
@ -336,6 +359,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C**: _Let's build a shell!_](https://github.com/kamalmarhubi/shell-workshop)
* [**C**: _Writing a UNIX Shell_](https://indradhanush.github.io/blog/writing-a-unix-shell-part-1/)
* [**C**: _Build Your Own Shell_](https://github.com/tokenrove/build-your-own-shell)
* [**C**: Write a shell in C](https://danishpraka.sh/posts/write-a-shell/)
* [**Go**: _Writing a simple shell in Go_](https://sj14.gitlab.io/post/2018-07-01-go-unix-shell/)
* [**Rust**: _Build Your Own Shell using Rust_](https://www.joshmcguigan.com/blog/build-your-own-shell-rust/)
@ -354,7 +378,7 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Python**: _Python Tutorial: Make Your Own Text Editor_](https://www.youtube.com/watch?v=xqDonHEYPgA) [video]
* [**Python**: _Create a Simple Python Text Editor!_](http://www.instructables.com/id/Create-a-Simple-Python-Text-Editor/)
* [**Ruby**: _Build a Collaborative Text Editor Using Rails_](https://blog.aha.io/text-editor/)
* [**Rust**: _Hecto: Build your own text editor in Rust_ ](https://www.philippflenker.com/hecto/)
* [**Rust**: _Hecto: Build your own text editor in Rust_ ](https://www.flenker.blog/hecto/)
#### Build your own `Visual Recognition System`
@ -366,9 +390,15 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C++**: _Let's Make a Voxel Engine_](https://sites.google.com/site/letsmakeavoxelengine/home)
* [**Java**: _Java Voxel Engine Tutorial_](https://www.youtube.com/watch?v=QZ4Vk2PkPZk&list=PL80Zqpd23vJfyWQi-8FKDbeO_ZQamLKJL) [video]
#### Build your own `Web Browser`
* [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)
* [**Python**: _Browser Engineering_](https://browser.engineering)
#### Build your own `Web Server`
* [**C#**: _Writing a Web Server from Scratch_](https://www.codeproject.com/Articles/859108/Writing-a-Web-Server-from-Scratch)
* [**Node.js**: _Build Your Own Web Server From Scratch In JavaScript_](https://build-your-own.org/webserver/)
* [**Node.js**: _Let's code a web server from scratch with NodeJS Streams_](https://www.codementor.io/ziad-saab/let-s-code-a-web-server-from-scratch-with-nodejs-streams-h4uc9utji)
* [**Node.js**: _lets-build-express_](https://github.com/antoaravinth/lets-build-express)
* [**PHP**: _Writing a webserver in pure PHP_](http://station.clancats.com/writing-a-webserver-in-pure-php/)
@ -392,10 +422,13 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**C++**: _How X Window Managers work and how to write one_](https://seasonofcode.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i.html)
* [**C++**: _Writing a Linux Debugger_](https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/)
* [**C++**: _How a 64k intro is made_](http://www.lofibucket.com/articles/64k_intro.html)
* [**C++**: _Make your own Game Engine_](https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT)
* [**C#**: _C# Networking: Create a TCP chater server, TCP games, UDP Pong and more_](https://16bpp.net/tutorials/csharp-networking)
* [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https://www.seanjoflynn.com/research/skeletal-animation.html)
* [**Clojure**: _Building a spell-checker_](https://bernhardwenzel.com/articles/clojure-spellchecker/)
* [**Go**, _Let's Create a Simple Load Balancer_](https://kasvith.github.io/posts/lets-create-a-simple-lb-go/)
* [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/)
* [**Go**: _Let's Create a Simple Load Balancer_](https://kasvith.me/posts/lets-create-a-simple-lb-go/)
* [**Go**: _Video Encoding from Scratch_](https://github.com/kevmo314/codec-from-scratch)
* [**Java**: _How to Build an Android Reddit App_](https://www.youtube.com/playlist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video]
* [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https://github.com/ronami/minipack)
* [**JavaScript**: _Learn JavaScript Promises by Building a Promise from Scratch_](https://levelup.gitconnected.com/understand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720)
@ -403,7 +436,9 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**JavaScript**: _Implement your owncall(), apply() and bind() method in JavaScript_](https://blog.usejournal.com/implement-your-own-call-apply-and-bind-method-in-javascript-42cc85dba1b)
* [**JavaScript**: _JavaScript Algorithms and Data Structures_](https://github.com/trekhleb/javascript-algorithms)
* [**JavaScript**: _Build a ride hailing app with React Native_](https://pusher.com/tutorials/ride-hailing-react-native)
* [**JavaScript**: _Build Your Own AdBlocker in (Literally) 10 Minutes_](https://levelup.gitconnected.com/building-your-own-adblocker-in-literally-10-minutes-1eec093b04cd)
* [**Kotlin**: _Build Your Own Cache_](https://github.com/kezhenxu94/cache-lite)
* [**Lua**: Building a CDN from Scratch to Learn about CDN](https://github.com/leandromoreira/cdn-up-and-running)
* [**Nim**: _Writing a Redis Protocol Parser_](https://xmonader.github.io/nimdays/day12_resp.html)
* [**Nim**: _Writing a Build system_](https://xmonader.github.io/nimdays/day11_buildsystem.html)
* [**Nim**: _Writing a MiniTest Framework_](https://xmonader.github.io/nimdays/day08_minitest.html)
@ -427,14 +462,15 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
* [**Python**: _A Simple Content-Based Recommendation Engine in Python_](http://blog.untrod.com/2016/06/simple-similar-products-recommendation-engine-in-python.html)
* [**Python**: _Stock Market Predictions with LSTM in Python_](https://www.datacamp.com/community/tutorials/lstm-python-stock-market)
* [**Python**: _Build your own error-correction fountain code with Luby Transform Codes_](https://franpapers.com/en/algorithmic/2018-introduction-to-fountain-codes-lt-codes-with-python/)
* [**Python**: _Building a simple Generative Adversial Network (GAN) using Tensorflow_](https://blog.paperspace.com/implementing-gans-in-tensorflow/)
* [**Python**: _Building a simple Generative Adversarial Network (GAN) using Tensorflow_](https://blog.paperspace.com/implementing-gans-in-tensorflow/)
* [**Python**: _Learn ML Algorithms by coding: Decision Trees_](https://lethalbrains.com/learn-ml-algorithms-by-coding-decision-trees-439ac503c9a4)
* [**Python**: _JSON Decoding Algorithm_](https://github.com/cheery/json-algorithm)
* [**Python**: _Build your own Git plugin with python_](https://joshburns-xyz.vercel.app/posts/build-your-own-git-plugin)
* [**Ruby**: _A Pedometer in the Real World_](http://aosabook.org/en/500L/a-pedometer-in-the-real-world.html)
* [**Ruby**: _Creating a Linux Desktop application with Ruby_](https://iridakos.com/tutorials/2018/01/25/creating-a-gtk-todo-application-with-ruby)
* [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)
* [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md)
* [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html)
* [**Rust**: _WebGL + Rust: Basic Water Tutorial_](https://www.chinedufn.com/3d-webgl-basic-water-tutorial/)
* [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager)
## Contribute
@ -443,6 +479,6 @@ This repository is a compilation of well-written, step-by-step guides for re-cre
## Origins & License
[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)
[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)
This repository is the work of [many contributors](https://github.com/codecrafters-io/build-your-own-x/graphs/contributors). It was started by [Daniel Stefanovic](https://github.com/danistefanovic), and is now maintained by [CodeCrafters, Inc.](https://codecrafters.io) To the extent possible under law, [CodeCrafters, Inc.](https://codecrafters.io) has waived all copyright and related or neighboring rights to this work.