There's room for improvement in a lot of the packages out there, and I'm still surprised by what feels like obvious omissions.
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.
Full read/write access to a directory via LDAP. I was about to start a microservice where I work using Go, but had to use Java. Bummer...
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.
The best approach to that would be interacting with and leveraging existing, very well proven and optimized image processing libraries. I can see some bindings for things like ImageMagick out there.
What are your requirements? I'm one of the owners of the GoConvey project and I'm happy to answer any of your questions about that project. Ginkgo and Goblin are great choices as well.
Could you please explain this further? I'm still learning Go but I haven't encountered anything in the philosophy of Go that (to me) would suggest that BDD is "not in the spirit of Go programming".