An open API service indexing awesome lists of open source software.

zero-alloc-awesome-go

Zero Allocation Golang Packages / Stuff
https://github.com/cloudxaas/zero-alloc-awesome-go

Last synced: 15 days ago
JSON representation

  • Networking

    • Transliteration

      • gopacket - Go library for packet processing with libpcap bindings.
      • gopcap - Go wrapper for libpcap.
      • goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
      • gotcp - Go package for quickly writing tcp applications.
      • graval - Experimental FTP server framework.
      • gws - High-Performance WebSocket Server & Client With AsyncIO Supporting .
      • httpproxy - HTTP proxy handler and dialer.
      • iplib - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html)
      • jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
      • kcp-go - KCP - Fast and Reliable ARQ Protocol.
      • kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
      • lhttp - Powerful websocket framework, build your IM server more easily.
      • linkio - Network link speed simulation for Reader/Writer interfaces.
      • llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.
      • mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
      • nbio - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use.
      • netpoll - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.
      • packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.
      • panoptes-stream - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT).
      • peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast.
      • portproxy - Simple TCP proxy which adds CORS support to API's which don't support it.
      • publicip - Package publicip returns your public facing IPv4 address (internet egress).
      • raw - Package raw enables reading and writing data at the device driver level for a network interface.
      • sftp - Package sftp implements the SSH File Transfer Protocol as described in <https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt>.
      • ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
      • sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance.
      • tcp_server - Go library for building tcp servers faster.
      • tspool - A TCP Library use worker pool to improve performance and protect your server.
      • utp - Go uTP micro transport protocol implementation.
      • vssh - Go library for building network and server automation over SSH protocol.
      • water - Simple TUN/TAP library.
      • winrm - Go WinRM client to remotely execute commands on Windows machines.
      • xtcp - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol.
      • gosnmp - Native Go library for performing SNMP actions.
      • HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
      • stun - Go implementation of RFC 5389 STUN protocol.
      • mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
      • quic-go - An implementation of the QUIC protocol in pure Go.
      • NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
      • fullproxy - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols.
      • grab - Go package for managing file downloads.
  • OpenGL

    • HTTP Clients

      • gl - Go bindings for OpenGL (generated via glow).
      • glfw - Go bindings for GLFW 3.
      • go-glmatrix - Go port of [glMatrix](https://glmatrix.net/) library.
      • goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android).
      • goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events.
      • mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.
  • ORM

    • HTTP Clients

      • bun - SQL-first Golang ORM. Successor of go-pg.
      • cacheme - Schema based, typed Redis caching/memoize framework for Go.
      • go-firestorm - A simple ORM for Google/Firebase Cloud Firestore.
      • go-sql - A easy ORM for mysql.
      • go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM.
      • go-store - Simple and fast Redis backed key-value store library for Go.
      • golobby/orm - Simple, fast, type-safe, generic orm for developer happiness.
      • GORM - The fantastic ORM library for Golang, aims to be developer friendly.
      • gormt - Mysql database to golang gorm struct.
      • gorp - Go Relational Persistence, ORM-ish library for Go.
      • grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).
      • lore - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
      • marlow - Generated ORM from project structs for compile time safety assurances.
      • pop/soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
      • reform - Better ORM for Go, based on non-empty interfaces and code generation.
      • rel - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API.
      • upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.
      • XORM - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle).
      • Zoom - Blazing-fast datastore and querying engine built on Redis.
      • Prisma - Prisma Client Go, Typesafe database access for Go.
      • ent - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data.
      • SQLBoiler - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.
  • Package Management

    • HTTP Clients

      • dep - Go dependency tool.
      • glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.
      • godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies.
      • gom - Go Manager - bundle for go.
      • gop - Build and manage your Go applications out of GOPATH.
      • gopm - Go Package Manager.
      • govendor - Go Package Manager. Go vendor tool that works with the standard vendor file.
      • gpm - Barebones dependency manager for Go.
      • gup - Update binaries installed by "go install".
      • johnny-deps - Minimal dependency version using Git.
      • modgv - Converts 'go mod graph' output into Graphviz's DOT language.
      • mvn-golang - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure.
      • VenGO - create and manage exportable isolated go virtual environments.
      • goop - Simple dependency manager for Go (golang), inspired by Bundler.
      • nut - Vendor Go dependencies.
      • vgo - Versioned Go.
  • Performance

    • HTTP Clients

      • go-instrument - Automatically add spans to all methods and functions.
      • jaeger - A distributed tracing system.
      • profile - Simple profiling support package for Go.
      • statsviz - Live visualization of your Go application runtime statistics.
      • tracer - Simple, lightweight tracing.
      • pixie - No instrumentation tracing for Golang applications via eBPF.
  • Query Language

    • HTTP Clients

      • api-fu - Comprehensive GraphQL implementation.
      • dasel - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies.
      • gojsonq - A simple Go package to Query over JSON Data.
      • goven - A drop-in query language for any database schema.
      • gqlgen - go generate based graphql server library.
      • graphql - graphql parser + utilities.
      • graphql-go - Implementation of GraphQL for Go.
      • gws - Apollos' "GraphQL over Websocket" client and server implementation.
      • jsonpath - A query library for retrieving part of JSON based on JSONPath syntax.
      • jsonql - JSON query expression library in Golang.
      • jsonslice - Jsonpath queries with advanced filters.
      • rql - Resource Query Language for REST API.
      • rqp - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query.
      • graphql - GraphQL server with a focus on ease of use.
      • straf - Easily Convert Golang structs to GraphQL objects.
  • Resource Embedding

    • HTTP Clients

      • debme - Create an `embed.FS` from an existing `embed.FS` subdirectory.
      • fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use.
      • go-resources - Unfancy resources embedding with Go.
      • go.rice - go.rice is a Go package that makes working with resources such as HTML, JS, CSS, images, and templates very easy.
      • mule - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focused on simplicity.
      • packr - The simple and easy way to embed static files into Go binaries.
      • rebed - Recreate folder structures and files from Go 1.16's `embed.FS` type
      • statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
      • statik - Embeds static files into a Go executable.
      • templify - Embed external template files into Go code to create single file binaries.
      • vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
      • esc - Embeds files into Go programs and provides http.FileSystem interfaces to them.
  • Science and Data Analysis

    • HTTP Clients

      • assocentity - Package assocentity returns the average distance from words to a given entity.
      • bradleyterry - Provides a Bradley-Terry Model for pairwise comparisons.
      • calendarheatmap - Calendar heatmap in plain Go inspired by Github contribution activity.
      • chart - Simple Chart Plotting library for Go. Supports many graphs types.
      • dataframe-go - Dataframes for machine-learning and statistics (similar to pandas).
      • decimal - Package decimal implements arbitrary-precision decimal floating-point arithmetic.
      • evaler - Simple floating point arithmetic expression evaluator.
      • ewma - Exponentially-weighted moving averages.
      • geom - 2D geometry for golang.
      • go-estimate - State estimation and filtering algorithms in Go.
      • go-gt - Graph theory algorithms written in "Go" language.
      • godesim - Extended/multivariable ODE solver framework for event-based simulations with simple API.
      • goent - GO Implementation of Entropy Measures.
      • gograph - A golang generic graph library that provides mathematical graph-theory and algorithms.
      • gohistogram - Approximate histograms for data streams.
      • gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more.
      • gonum/plot - gonum/plot provides an API for building and drawing plots in Go.
      • goraph - Pure Go graph theory library(data structure, algorithm visualization).
      • gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
      • GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions.
      • graph - Library of basic graph algorithms.
      • jsonl-graph - Tool to manipulate JSONL graphs with graphviz support.
      • ode - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.
      • orb - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support.
      • pagerank - Weighted PageRank algorithm implemented in Go.
      • piecewiselinear - Tiny linear interpolation library.
      • PiHex - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi.
      • rootfinding - root-finding algorithms library for finding roots of quadratic functions.
      • sparse - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries.
      • stats - Statistics package with common functions missing from the Golang standard library.
      • streamtools - general purpose, graphical tool for dealing with streams of data.
      • TextRank - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support.
      • triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs.
      • go-dsp - Digital Signal Processing for Go.
  • Security

    • HTTP Clients

      • themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
      • acra - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system.
      • age - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
      • argon2-hashing - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package.
      • argon2pw - Argon2 password hash generation with constant-time password comparison.
      • BadActor - In-memory, application-driven jailer built in the spirit of fail2ban.
      • booster - Fast initramfs generator with full-disk encryption support.
      • Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras.
      • certificates - An opinionated tool for generating tls certificates.
      • CertMagic - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal.
      • Coraza - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library.
      • firewalld-rest - A rest application to dynamically update firewalld rules on a linux server.
      • go-generate-password - Password generator that can be used on the cli or as a library.
      • go-htpasswd - Apache htpasswd Parser for Go.
      • go-yara - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)".
      • goArgonPass - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations.
      • goSecretBoxPassword - A probably paranoid package for securely hashing and encrypting passwords.
      • Interpol - Rule-based data generator for fuzzing and penetration testing.
      • lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt).
      • memguard - A pure Go library for handling sensitive values in memory.
      • nacl - Go implementation of the NaCL set of API's.
      • optimus-go - ID hashing and Obfuscation using Knuth's Algorithm.
      • passlib - Futureproof password hashing library.
      • secret - Prevent your secrets from leaking into logs, std\* etc.
      • secure - HTTP middleware for Go that facilitates some quick security wins.
      • secureio - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519.
      • simple-scrypt - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
      • ssh-vault - encrypt/decrypt using ssh keys.
      • sslmgr - SSL certificates made easy with a high level wrapper around acme/autocert.
      • dongle - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption.
      • acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
      • go-password-validator - Password validator based on raw cryptographic entropy values.
      • teler-waf - teler-waf is a Go HTTP middleware that provide teler IDS functionality to protect against web-based attacks and improve the security of Go-based web applications. It is highly configurable and easy to integrate into existing Go applications.
      • autocert - Auto provision Let's Encrypt certificates and start a TLS server.
  • Serialization

    • HTTP Clients

      • bambam - generator for Cap'n Proto schemas from go.
      • binstruct - Golang binary decoder for mapping data into the structure.
      • cbor - Small, safe, and easy CBOR encoding and decoding library.
      • colfer - Code generation for the Colfer binary format.
      • csvutil - High Performance, idiomatic CSV record encoding and decoding to native Go structures.
      • elastic - Convert slices, maps or any other unknown value across different types at run-time, no matter what.
      • fixedwidth - Fixed-width text formatting (UTF-8 supported).
      • fwencoder - Fixed width file parser (encoding and decoding library) for Go.
      • go-capnproto - Cap'n Proto library and parser for go.
      • go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support.
      • go-lctree - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation).
      • gogoprotobuf - Protocol Buffers for Go with Gadgets.
      • goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers.
      • jsoniter - High-performance 100% compatible drop-in replacement of "encoding/json".