zero-alloc-awesome-go
Zero Allocation Golang Packages / Stuff
https://github.com/cloudxaas/zero-alloc-awesome-go
Last synced: 13 days ago
JSON representation
Database
Caches
E-Books
E-books for purchase
- Black Hat Go - Go programming for hackers and pentesters.
- Continuous Delivery in Go - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product.
- Go Faster - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster.
- Know Go: Generics - A guide to understanding and using generics in Go.
- The Power of Go: Tests - A guide to testing in Go.
- The Power of Go: Tools - A guide to writing command-line tools in Go.
- Creative DIY Microcontroller Project With TinyGo and WebAssembly - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly.
- For the Love of Go - An introductory book for Go beginners.
- Build an Orchestrator in Go
- Effective Go: Elegant, efficient, and testable code - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code.
- Lets-Go - A step-by-step guide to creating fast, secure and maintanable web applications with Go.
- Lets-Go-Further - Advanced patterns for building APIs and web applications in Go.
- Writing A Compiler In Go
- Writing An Interpreter In Go - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls.
Free e-books
- A Go Developer's Notebook
- Build Web Application with Golang
- Building Web Apps With Go
- GoBooks - A curated list of Go books.
- How To Code in Go eBook - A 600 page introduction to Go aimed at first time developers.
- Network Programming With Go
- Practical Go Lessons
- The Go Programming Language
- An Introduction to Programming in Go
-
Go AST Book (Chinese)
- A book focusing on Go
go/*packages. - Go Succinctly - in Persian.
- Spaceship Go A Journey to the Standard Library
- The Golang Standard Library by Example (Chinese)
- Web Application with Go the Anti-Textbook
- Go 101 - A book focusing on Go syntax/semantics and all kinds of details.
- Learning Go
Gophers
Free e-books
- Free Gophers Pack - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster.
- Go-gopher-Vector - Go gopher Vector Data [.ai, .svg].
- gopher-logos - adorable gopher logos.
- gopher-stickers
- gophericons
- gopherize.me - Gopherize yourself.
- gophers - Gopher artworks by Ashley McNamara.
- gophers - Free gophers.
- gophers - random gopher graphics.
- gophers - Gopher amigurumi toy pattern.
- gophers - Gophers by Aurélie Vache.
Goroutines
Search and Analytic Databases
- ants - A high-performance and low-cost goroutine pool in Go.
Logging
Search and Analytic Databases
- zerolog - Zero-allocation JSON logger.
Machine Learning
Search and Analytic Databases
- bayesian - Naive Bayesian Classification for Golang.
- CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.
- ddt - Dynamic decision tree, create trees defining customizable rules.
- eaopt - An evolutionary optimization library.
- evoli - Genetic Algorithm and Particle Swarm Optimization library.
- fonet - A Deep Neural Network library written in Go.
- go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms.
- go-deep - A feature-rich neural network library in Go.
- go-featureprocessing - Fast and convenient feature processing for low latency machine learning in Go.
- go-galib - Genetic Algorithms library written in Go / golang.
- go-pr - Pattern recognition package in Go lang.
- gobrain - Neural Networks written in go.
- godist - Various probability distributions, and associated methods.
- goga - Genetic algorithm library for Go.
- GoLearn - General Machine Learning library for Go.
- golinear - liblinear bindings for Go.
- GoMind - A simplistic Neural Network Library in Go.
- goml - On-line Machine Learning in Go.
- gonet - Neural Network for Go.
- Goptuna - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized.
- goRecommend - Recommendation Algorithms library written in Go.
- gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms.
- goscore - Go Scoring API for PMML.
- gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library.
- libsvm - libsvm golang version derived work based on LIBSVM 3.14.
- m2cgen - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support.
- neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT).
- neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation.
- ocrserver - A simple OCR API server, seriously easy to be deployed by Docker and Heroku.
- probab - Probability distribution functions. Bayesian inference. Written in pure Go.
- randomforest - Easy to use Random Forest library for Go.
- regommend - Recommendation & collaborative filtering engine.
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go.
- tfgo - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python.
- Varis - Golang Neural Network.
- gorse - An offline recommender system backend based on collaborative filtering written in Go.
- onnx-go - Go Interface to Open Neural Network Exchange (ONNX).
- go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library.
Meetups
Free e-books
- Belgrade Golang Meetup
- Berlin Golang
- Go Language NYC
- Go Toronto
- GoBridge, San Francisco, CA
- Golang Amsterdam
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Dorset, UK
- Golang Melbourne
- Golang Rotterdam
- Golang Singapore
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Thessaloniki
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
- Golang Paris
- Basel Go Meetup
- Brisbane Gophers
- Go Remote Meetup
- GoBandung
- GoCracow - Krakow, Poland
- Golang Baltimore, MD
- Golang Curitiba - Brazil
- Golang DC, Arlington, VA
- Golang Estonia
- Golang Lima - Peru
- Golang Marseille
- Golang North East
Messaging
Search and Analytic Databases
- mob - mob is a generic-based, simple mediator / event aggregator library. It supports in-process requests / events processing.
- ami - Go client to reliable queues based on Redis Cluster Streams.
- amqp - Go RabbitMQ Client Library.
- APNs2 - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps.
- Asynq - A simple, reliable, and efficient distributed task queue for Go built on top of Redis.
- Beaver - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
- Bus - Minimalist message bus implementation for internal communication.
- Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.
- Chanify - A push notification server send message to your iOS devices.
- Commander - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka.
- Confluent Kafka Golang Client - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform.
- dbus - Native Go bindings for D-Bus.
- drone-line - Sending Line notifications using a binary, docker or Drone CI.
- emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.
- event - Implementation of the pattern observer.
- EventBus - The lightweight event bus with async compatibility.
- gaurun-client - Gaurun Client written in Go.
- Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io).
- go-mq - RabbitMQ client with declarative configuration.
- go-notify - Native implementation of the freedesktop notification spec.
- go-nsq - the official Go package for NSQ.
- go-res - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate.
- go-socket.io - socket.io library for golang, a realtime application framework.
- go-vitotrol - Client library to Viessmann Vitotrol web service.
- Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.
- golongpoll - HTTP longpoll server library that makes web pub-sub simple.
- gopush-cluster - gopush-cluster is a go push server cluster.
- gorush - Push notification server using APNs2 and google GCM.
- gosd - A library for scheduling when to dispatch a message to a channel.
- guble - Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.
- hare - A user friendly library for sending messages and listening to TCP sockets.
- hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges.
- jazz - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages.
- machinery - Asynchronous task queue/job queue based on distributed message passing.
- mangos - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability.
- melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling.
- Mercure - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events).
- messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD.
- nsq-event-bus - A tiny wrapper around NSQ topic and channel.
- oplog - Generic oplog/replication system for REST APIs.
- Quamina - Fast pattern-matching for filtering messages and events.
- rabbus - A tiny wrapper over amqp exchanges and queues.
- rabtap - RabbitMQ swiss army knife cli app.
- RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue.
- Ratus - Ratus is a RESTful asynchronous task queue server.
- redisqueue - redisqueue provides a producer and consumer of a queue that uses Redis streams.
- rmqconn - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed.
- Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices.
- Watermill - Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog.
- zmq4 - Go interface to ZeroMQ version 4. Also available for version 3 and version 2.
- Benthos - A message streaming bridge between a range of protocols.
- sarama - Go library for Apache Kafka.
- NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
- pubsub - Simple pubsub package for go.
Microsoft Office
Microsoft Excel
- exl - Excel binding to struct written in Go.(Only supports Go1.18+)
- go-excel - A simple and light reader to read a relate-db-like excel as a table.
- goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files.
- xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
- xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
Search and Analytic Databases
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
Miscellaneous
Dependency Injection
- alice - Additive dependency injection container for Golang.
- dig - A reflection based dependency injection toolkit for Go.
- dingo - A dependency injection toolkit for Go, based on Guice.
- do - A dependency injection framework based on Generics.
- fx - A dependency injection based application framework for Go (built on top of dig).
- gocontainer - Simple Dependency Injection Container.
- goioc/di - Spring-inspired Dependency Injection Container.
- GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language.
- google/wire - Automated Initialization in Go.
- HnH/di - DI container library that is focused on clean API and flexibility.
- kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization.
- linker - A reflection based dependency injection and inversion of control library with components lifecycle support.
- nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup.
- wire - Strict Runtime Dependency Injection for Golang.
- di - A dependency injection container for go programming language.
Project Layout
- ardanlabs/service - A starter kit for building production grade scalable web service applications.
- cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices.
- go-module - Template for a typical module written on Go.
- go-sample - A sample layout for Go application projects with the real code.
- go-starter - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers.