Go Library
4.09K subscribers
17 photos
63 files
712 links
Go (Golang) Library

Реклама: @ostinostin
Контент: @mxssl
加入频道
fibratus

Fibratus is a tool for exploration and tracing of the Windows kernel. It lets you trap system-wide events such as process life-cycle, file system I/O, registry modifications or network requests among many other observability signals. In a nutshell, Fibratus allows for gaining deep operational visibility into the Windows kernel but also processes running on top of it. It requires no drivers nor third-party software.

https://github.com/rabbitstack/fibratus
chrono

Chrono is a scheduler library that lets you run your tasks and code periodically. It provides different scheduling functionalities to make it easier to create a scheduling task.

https://github.com/procyon-projects/chrono
Logging in Go with slog

slog is an experimental logging package from the Go team that provides the functionality of structured logging.

This article gives you an overview of logging functionality in this package.

https://thedevelopercafe.com/articles/logging-in-go-with-slog-a7bb489755c2
go-micro

Go Micro is a framework for distributed systems development.

Features:

- Authentication
- Dynamic Config
- Data Storage
- Service Discovery
- Load Balancing
- Message Encoding
- RPC Client/Server
- Async Messaging
- Event Streaming
- Synchronization
- Pluggable Interfaces

https://github.com/go-micro/go-micro
Migrating our monorepo seamlessly from Dep to Go Modules

Since 2018, we've been using Dep to manage all the dependencies (473 at the time of counting) in our microservices monorepo. In 2020, Dep was deprecated in favour of the officially-supported Go modules system, but we weren’t able to migrate because of the new way it calculates the dependency tree; migrating to Go modules would have changed over 1.5 million lines of third-party code. This is extremely risky, difficult to review and hard to roll back, but continuing to use Dep meant we were relying on tooling that was no longer maintained and not sticking with the Go ecosystem which could cause problems down the line.

We wanted to find a way to switch to Go modules safely so we turned the operation into a ‘no-op’ by freezing dependency versions. We prepared our monorepo by iteratively updating our dependencies using the existing Dep tooling, which in turn reduced the risk of dependency changes during and after the migration to Go modules.

https://monzo.com/blog/2022/09/29/migrating-our-monorepo-seamlessly-from-dep-to-go-modules
Memory layout and mechanics of arrays and slices | Golang

https://youtu.be/RVTfPy_NELc
The perfect start to your new Go project

Effortlessly generate the ideal application scaffold for your Go project, customized to your needs and saving yourself hours of time and thinking.

https://autostrada.dev
How To Create a PDF in Go: a Step-by-Step Tutorial

Follow Along As We Generate a PDF Invoice From Scratch

https://medium.com/the-godev-corner/how-to-create-a-pdf-in-go-157355429a94
pagoda

Pagoda is not a framework but rather a base starter-kit for rapid, easy full-stack web development in Go, aiming to provide much of the functionality you would expect from a complete web framework as well as establishing patterns, procedures and structure for your web application.

https://github.com/mikestefanello/pagoda
circumflex

It's Hacker News in your terminal

https://github.com/bensadeh/circumflex
tunny

Tunny is a Golang library for spawning and managing a goroutine pool, allowing you to limit work coming from any number of goroutines with a synchronous API.

https://github.com/Jeffail/tunny
fsnotify

fsnotify is a Go library to provide cross-platform filesystem notifications on Windows, Linux, macOS, BSD, and illumos.

https://github.com/fsnotify/fsnotify
lazydocker

A simple terminal UI for both docker and docker-compose, written in Go with the gocui library.

https://github.com/jesseduffield/lazydocker
cobra

Cobra is a library for creating powerful modern CLI applications.

https://github.com/spf13/cobra
goa

Goa takes a different approach to building services by making it possible to describe the design of the service API using a simple Go DSL. Goa uses the description to generate specialized service helper code, client code and documentation. Goa is extensible via plugins, for example the goakit plugin generates code that leverage the Go kit library.

https://github.com/goadesign/goa
Scaling acceptance tests

Acceptance tests are essential, and they directly impact your ability to confidently evolve your system over time, with a reasonable cost of change.

https://quii.gitbook.io/learn-go-with-tests/testing-fundamentals/scaling-acceptance-tests
frankenphp

FrankenPHP is a modern application server for PHP built on top of the Caddy web server.

FrankenPHP can also be used as a standalone Go library to embed PHP in any app using net/http.

https://github.com/dunglas/frankenphp
Go Performance Case Studies

Dolt DB is the world's first SQL database that you can branch and merge, push and pull, fork and clone just like a git repository.

We built Dolt's storage engine from the ground up to make these operations fast. Writing a row storage engine and a SQL execution engine isn't easy. There's a reason that most people don't even attempt it, but at DoltHub we're built different.

Today we're going to review several case studies of performance problems we ran into while benchmarking Dolt to get row access to be as fast as MySQL. Every case study is a real performance problem we encountered and fixed.

https://www.dolthub.com/blog/2022-10-14-golang-performance-case-studies
wails

The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!

https://github.com/wailsapp/wails
buf

A new way of working with Protocol Buffers.

https://github.com/bufbuild/buf