opus
cats
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
opus
-
Educational Codebases
There are a few Go projects meant to be learned from:
- https://github.com/pion/opus for to learn audio
- https://github.com/benbjohnson/wtf for overall production quality
- https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors
- Pure Go Implementation of the Opus Codec
- Pure Go implementation of Opus audio codec
- Pure Go implementation of the Opus Codec (used by WebRTC)
- Pure Go implementation of the Opus audio codec
- Show HN: Pure Go Opus Audio Codec implementation
cats
-
Educational Codebases
I think that some codebases can lend themselves to be read more than others. Consider for example GNU cat[0] vs. Plan9's[1], from which one can infer the overall readability of the two projects.
In particular, codebases who are composed of small, well-isolated components, can be read one chunk at a time, like a book. But I wouldn't be surprised for most "professional grade" codebases to consist of organic, "cluttered" aggregate. Which, as you observe, aren't really suited to be read, even more so linearly.
It also depends on one's intents, which are likely narrower in a professional setting (e.g. fixing a bug, implementing a feature; refactoring being a notable exception), than in a learning setting (e.g. learning how to write idiomatic parsers in Go by studying the Go parser itself). In this last case, curiosity might push you to read the code more deeply, compare different codebases, etc.
Finally, some languages also are more prone to enforce locality than others, impacting readability. See for example Linus arguing about C being more context-free than C++ [2].
[0]: https://github.com/pete/cats/blob/master/gnu-cat.c
[1]: https://github.com/pete/cats/blob/master/plan9-cat.c
[2]: https://www.realworldtech.com/forum/?threadid=104196&curpost...
What are some alternatives?
wtf - WTF Dial is an example web application written in Go.
ngircd - Free, portable and lightweight Internet Relay Chat server
Pion WebRTC - Pure Go implementation of the WebRTC API
upspin - Upspin: A framework for naming everyone's everything.
turn - Pion TURN, an API for building TURN clients and servers
stun - A Go implementation of STUN
sword-c - Scope Bound Resource Management (SBRM) based on GNU C dialect.
dtls - DTLS 1.2 Server/Client implementation for Go
libconfini - Yet another INI parser