Go Library
4.12K subscribers
20 photos
63 files
804 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
Download Telegram
Rust's concurrency model vs Go's concurrency model: stackless vs stackfull coroutines

While Rust and Go are both modern programming languages that have learned from the mistakes of the previous generation, they manage concurrency in a completely different way, which, as we will see, has a huge impact on performance and developer experience.


https://kerkour.com/rust-vs-go-concurrency-models-stackfull-vs-stackless-coroutines
On testing Go code using the standard library

Most modern programming language ecosystems provide assert functions in their testing libraries but not Go’s. Its standard testing package follows a more direct and to-the-point approach. In fact, there isn’t even a single assertion function in the testing package, and writing idiomatic tests in Go isn’t that different from writing application code.


https://henvic.dev/posts/testing-go
7 Common Interface Mistakes in Go

Go is still a new language, and if you’re working with it, chances are that this is not your first programming language.
Coming from a different language, you bring forth both your experience as well as your biases. Things you used to do in your previous language might not be a good idea in Go.


https://medium.com/@andreiboar/7-common-interface-mistakes-in-go-1d3f8e58be60
bleve

A modern text/numeric/geo-spatial/vector indexing library for go


https://github.com/blevesearch/bleve
Caesar framework

Caesar is a Go web framework, designed for productivity. It takes inspiration from traditional web frameworks such as Ruby on Rails, Laravel, Django, Phoenix, AdonisJS, etc.

As of today, Go developers have to spend tremendous time architecting their web applications, setting up the project structure, configuring the database, choosing the right routing library, and so on.

Caesar aims to solve this problem by providing a set of tools and conventions that allow developers to focus on building their web applications, rather than setting them up.


https://www.caesar.rocks
Resetting timers in Go

If you use Timer.Reset() in Go 1.22 or earlier, you may be doing it wrong. Even the book 100 Go Mistakes (which is usually right about Go nuances) got it wrong.


https://antonz.org/timer-reset
river

River is a robust high-performance job processing system for Go and Postgres.


https://github.com/riverqueue/river
Learning Go in 2024; From Beginner to Senior

https://www.bytesizego.com/blog/learning-golang-2024
The Family of Safe Golang Libraries is Growing!

We are thrilled to introduce three new open-source libraries in Go that provide secure and efficient solutions:

- SafeText for YAML and shell command templating
- SafeOpen for opening files in a base directory
- SafeArchive for processing archive files


https://bughunters.google.com/blog/4925068200771584/the-family-of-safe-golang-libraries-is-growing
Go 1.23: Interactive release notes

Go 1.23 is coming soon, so it's a good time to explore what's new. The official release notes are pretty dry, so I tried to remedy that by adding lots of interactive examples and showing what has changed and what the new behavior is.

Read on and see!


https://antonz.org/go-1-23
log

A minimal, colorful Go logging library


https://github.com/charmbracelet/log
Go features by version

This is a summary of which major features appeared in which versions of Go.


https://antonz.org/which-go
Build Your Own SMTP Server in Go

Sharing what we learned about building Ferdinand, our emails sending service.


https://valyent.substack.com/p/build-your-own-smtp-server-in-go
What’s New in Go 1.23: Iterators and reflect.Value.Seq

https://blog.carlana.net/post/2024/golang-reflect-value-seq