A curated list of Go frameworks, libraries and software
github.com
github.com
For example the database drivers section [1]: 3 out of 5 projects are abandoned, while current projects (listed in the official Go community wiki [2]) are missing.
1: https://github.com/avelino/awesome-go#database-drivers 2: https://code.google.com/p/go-wiki/wiki/Projects#Databases_an...
This is an area where quality defeats quantity by a particularly large margin.
The wiki isn't quite as welcoming:
> To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account.
I'm not really a great fan of github, but it's hard to deny that it is one easy way to facilitate and mediate contributions.
Spam sucks.
Alas, I looked a little closer and it looks like the author used "awesome" because it followed in the footsteps of "awesome-python" which itself followed "awesome-php".
Therefore, the author's usage of "awesome" is simply a homage and not an adjective of significant semantics. (Unless the word "awesome" is constrained to mean "the libraries exist" which is amazing because Golang is only 4 years old. Imo, this is too low of a bar to signify as "awesome.")
An example of how even a core package could do with improving: "image" doesn't support all forms of progressive and/or interlaced PNG, any version of animated PNG, or WebP. The lack of progressive PNG means that you can't quite rely on it for user-uploaded images, and image/webp seems to be getting more traction and handling those appears to be growing in importance. Without these things, the other packages that rely on "image" to provide image processing can only be relied upon to work for JPG and GIF.
An example of an omission I found myself filling recently, a HTML sanitizer. I wanted something like the OWASP Java HTML sanitizer https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Pr... , but could only find some very simplistic sanitizers packages (little to no ability to define the policy, simplistic URL checking, etc). I ended up writing my own package to help fill the gap https://github.com/microcosm-cc/bluemonday
You can tell I'm dealing with user generated/supplied content. Each domain still feels almost there (in having a toolbox of packages that do everything you need and are rock solid), but just shy of being there today.
Interlacing support for png will be in Go 1.4: https://codereview.appspot.com/102130044/
You can also follow: https://code.google.com/p/go/issues/detail?id=6293
For progressive/animated png-s please fill an issue: https://code.google.com/p/go/issues
EDIT: a pure Go-based LDAP library is what I meant. I know there's a couple on GitHub but they seem to be abandoned. Plus, there's another one providing bindings to the OpenLDAP libraries.
If you're a beginner and just want to see the top 10 most high quality, popular Go packages, you'd move a slider nearly all the way to the left until only top 10 packages remain.
On the other hand, if you have an obscure need (say, generate random First Names, Last Names, ZIP codes, etc.) and you're willing to look through as many packages as possible, you'd adjust that slider all the way to the right until all included Go packages are listed, and hopefully find https://github.com/Pallinder/go-randomdata#go-randomdata under Awesome Go -> Testing -> Random Data Generation or some other sub-sub-sub-topic.
[1] A simple demo of such "level of detail" visualization that I played around with, an explanation of how I could send an email with the press of a button: https://dl.dropboxusercontent.com/u/8554242/available-for-2-...
A list with no curation: http://godoc.org/-/index