/awesomecode

Curation of awesome repositories that are worth reading.

Relevant, clean or fun code is difficult to find. It gets burried among the millions of repositories that can be found online. It becomes a herculean task if you want to find code in a particular language or a in a particular domain. This is an attempt to solve this particular problem. Many a times upon finding a repository that interests me, I find many more repositories that are relevant to me that are maintained by the same author.

One or more of the following sentences describe the repositories mentioned here.

  • Elegant and well written. Also may be a classic example of code in that language / domain.
    This may give people the opportunity to read code and help them in their journey of writing better code.
  • Cool ideas with execution. May or may not be well written.
    At times people aren't aware of the capabilities of the language they program in. Also shiny stuff has the tendency to keep people motivated and fosters learning. Osmosis may also result in new ideas of their own.
  • Baby steps. Something elegant and usable but not complex. Beginner's delight.
    Most tutorials online teach trivial stuff. It becomes difficult to connect the dots and actually see what they lead to. However there are some inviting repositories that are savvy enough to do interesting stuff and at the same time aren't very difficult to grok.
  • Domain intensive.
    Are you interested in games written in C++ or coding your own dummy operating system or a programming language? There are quite a few repositories written to complete college assignments or for fun that will give you just that.
  • Famous. You've probably used it in the past.
    What's better than reading the source code of a library that you've used in the past. You're aware that you'd love to know how your favourite library is implemented but you never got around to searching / reading the source code.

Some Things To Remember

Sorted via Language

C

  • Kilo - A text editor with less than 1000 lines of code.

    • Repo by Antirez, creator of Redis.
    • Rudimentary operations like save, quit and find.
    • See it in action.
    • Minimal and suitable for beginners.
    • Doesn't use any library.
  • Tiny Web Server - A tiny web server in C.

    • Less than 500 lines of code.
    • A couple of handy features.
  • Craft - A Minecraft clone.

    • Smooth gameplay. Looks elegant as well.
    • You can create your own server and play(this portion is written in Python).
    • sqlite3 database to store stuff.
    • Author has loads of other cool repositories.
  • Toaruos - A hobby operating system.

    • Built from scratch. Includes a kernel and a userspace.
    • Has a rich GUI and loads of other capabilities.

C++

Python

  • Reddit - Most of the code that powers Reddit.

    • Do I need to say more?
  • Supervisor - A process manager for Unix.

    • Automate starting, stopping and restarting processes.
    • Pretty useful piece of software that is used quite a lot.
    • Handles the apps you start as child process. Can kill and spawn as needed.
  • You Get - Scrape media from the web.

    • Can be used to download videos, pictures and audio.
    • Quite cool and might appeal to people getting started with Python.
  • htmlPy - Create GUI using HTML, CSS and JavaScript.

  • hy - Pythonic Lisp

    • Write code in Lisp that directly gets converted to Python.
    • Best of both worlds.
    • Supports macros as well.
  • Clickbait Detector - Detects links that are written specifically to entice users to click them.

    • Written in Jupyter notebooks.
    • Also has a chrome extension.

Go

  • Primitive - Reproduce images with geometric primitives.

  • Micro - A terminal based text editor.

    • Cross platform.
    • Plugin system.
    • Splits, tabs and common key bindings with good mouse support.

JavaScript

  • Pokemon Showdown - An online battle simulator.

    • Pretty cool fully animated battle simulator.
    • Has a repo for client side code and a repo for the server side.
    • Try it out.
  • Matterwiki - A wiki for teams.

    • A gorgeous front end and mobile responsive.
    • WYSIWYG editor.
  • Intense Images - Make an impact with images.

    • A library that adds some punch to your image.
    • This is something that you always wanted but just weren't aware of it.
    • Simple and intuitive API.
    • The author's profile sports other splendid libraries as well.
    • Demo.
  • Shower - HTML Presentation Engine

    • Built with HTML, CSS and vanilla JavaScript.
    • Keyboard accessible and printable to PDF.
    • See it in action. You just have to double click one of the slides and then use arrow keys.
  • Habitica - Treat your habits as a RPG.

  • Holmes - Fast and easy searching within a page.

    • Neat way to search and show relevant stuff within a page.
    • Demo.
  • Smoothie - A JavaScript library for real time data.

    • Really smooth. I'm aware the name implies it.
    • Surprisingly small in size.
    • Demo.
  • Blockrain - A Tetris in jQuery.

    • Loads of themes.
    • Bots can play against each other.
    • Awesome UI.

Java

  • GraphHopper - An open source routing library.

    • It uses data from OpenStreetMap.
    • Gives directions and the distance from point A to point B.
    • Kind of like Google Maps.
    • Try it out.
  • Loklak Server - Collect, share and dump tweets.

    • Collect a very large amount of tweets.
    • Create your own search portal for tweets.
    • Use it for statistical purposes.
    • Easy setup on a host of platforms.
    • Share data using a P2P network.

C Sharp

  • FastColoredTextBox - Text editor component for winforms.
    • Syntax highlighting, autocomplete, search, redo, undo etc.
    • Custom syntax highlighting using regex.
    • Robust and efficient.
    • Simple API.

Common Lisp

  • Lambda Lite - A functional relational database.
    • Under 250 lines of code.
    • Not scalable at all. It's a fun project.

Haskell

  • FuncTorrent - A BitTorrent client in Haskell.
    • Not a substitute to your torrent client.
    • Built for fun.
    • Looks like a good learning experience. (Read torrent specs, Haskell style guide etc)