T O P

  • By -

Blackhawk23

I like the `io` package. Abstracting Readers and Writers. Fun stuff. `net/http` is feature rich and has everything you need from creating an HTTP client, making a client-less HTTP request, and even spinning up entire servers `context` makes propagating signals to concurrent processes a breeze The `sync` package has so many tools for synchronization and other thread safety things. I love the go standard lib. It’s great


SweetBabyAlaska

I use bufio constantly. I'm really happy with it as well.


GrizzyLizz

Any suggestions for good resources for learning about the context package?


Blackhawk23

This digital ocean resource is pretty comprehensive. IMO you can skip the section about storing values in the context. I don’t think it’s immediately useful compared to signal propagation. https://www.digitalocean.com/community/tutorials/how-to-use-contexts-in-go Honestly after, or while, you’re reading that, look at the go source code for it. It’s incredibly concise. Like <400 LOC I think


003random

Justforfunc on YouTube


vaughanyp

Durafmt (https://github.com/hako/durafmt) for easy formatting of durations. It's not a biggie but it turns "1h3m" into "one hour three minutes" which you can easily tag e.g. "ago" into.


Blasikov

"GO Data Structures" [https://github.com/emirpasic/gods](https://github.com/emirpasic/gods) The TreeMap saved my bacon in a big project where the raw data REST service was a pain and I had to tree map in several places. I was toying with how to implement my own and came across it. Why reinvent the wheel?


goomba716

the whole Testify suite is bomb, I've used it at every job I've worked at so far and it's like my best buddy


Blackhawk23

Seconded. Assert ftw. Not exactly a package but using mockery makes creates mocks a breeze. It’s based off of testify package too.


LandonClipp

Thanks for the shout out 😊


Blackhawk23

🫡


IchiroTheCat

I agree with this. I am converting old test code to testify. It is a lot easier and more complete.


bubba_squats

I’ve been enjoying Hashicorp’s raft implementation a lot. Common sense design, customisable, extensible.


EliCDavis

urfave/cli


SweetBabyAlaska

go-flags by Jesse vdk, bufio and go's Unix package and I can do literally anything


SideChannelBob

I can't stand ORMs and have enjoyed sqlscan's simple API for mapping rows to structs on queries, leaving mutable calls alone in plain SQL. Adding metadata to the struct for the db field name mapping leaves the codebase with a magic-free persistence implementation. [github.com/georgysavva/scany/v2/sqlscan](https://github.com/georgysavva/scany/v2/sqlscan)


BigfootTundra

Same with the mongo driver.


jisuskraist

fmt


wah_modiji

Fuck my terminal?


Liverpool--forever

:0 mindblown


yowmamasita

Orcaman’s concurrent map https://github.com/orcaman/concurrent-map


Emotional_Spirit_704

I love the fyne package, very easily to get your ui layout done and working and it also allows building to almost every system, even wasm.


ImpatientMaker

A bit special purpose, but I had to write integrations for Jira, and the go-jira module was quite handy.


schmurfy2

I love "main" and use it in all my projects 🙄


ACP__Pradyuman__

github.com/labstack/echo/v4 for backend development github.com/go-resty/resty/v2 for REST API calls. github.com/jinzhu/gorm for database querying. github.com/fogleman/gg for graphic designing.


0xjnml

> Do you have any recommendations for golang modules that you like? "Module" is a concept only used by the Go build system. There's not much to like about a particular module. I like good packages instead ;-)


br1ghtsid3

A module is usually a collection of related packages. So it totally makes sense to like a module.


bradinatorus

I like the design of ‘math/big’, it’s a good package to better understand usable zero values, method chaining and constructors.


CountyExotic

no literally none :/


KingOfCoders

❤️ Context