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

  • Serialization

    • HTTP Clients

      • mapstructure - Go library for decoding generic map values into native Go structures.
      • php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions.
      • pletter - A standard way to wrap a proto message for message brokers.
      • unitpacking - Library to pack unit vectors into as fewest bytes as possible.
      • asn1 - Asn.1 BER and DER encoding library for golang.
      • structomap - Library to easily and dynamically generate maps from static structures.
      • bel - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC.
  • Server Applications

    • HTTP Clients

      • nsq - A realtime distributed messaging platform.
      • algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
      • Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use.
      • cortex-tenant - Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels.
      • devd - Local webserver for developers.
      • discovery - A registry for resilient mid-tier load balancing and failover.
      • dudeldu - A simple SHOUTcast server.
      • dummy - Run mock server based off an API contract with one command.
      • Euterpe - Self-hosted music streaming server with built-in web UI and REST API.
      • Fider - Fider is an open platform to collect and organize customer feedback.
      • go-feature-flag - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it.
      • go-proxy-cache - Simple Reverse Proxy with Caching, written in Go, using Redis.
      • jackal - An XMPP server written in Go.
      • lets-proxy2 - Reverse proxy for handle https with issue certificates in fly from lets-encrypt.
      • minio - Minio is a distributed object storage server.
      • Moxy - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint.
      • nginx-prometheus - Nginx log parser and exporter to Prometheus.
      • protoxy - A proxy server that converts JSON request bodies to Protocol Buffers.
      • psql-streamer - Stream database events from PostgreSQL to Kafka.
      • riemann-relay - Relay to load-balance Riemann events and/or convert them to Carbon.
      • SFTPGo - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support. It can serve local filesystem and Cloud Storage backends such as S3 and Google Cloud Storage.
      • simple-jwt-provider - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management.
      • Wish - Make SSH apps, just like that!
      • RoadRunner - High-performance PHP application server, load-balancer and process manager.
      • etcd - Highly-available key value store for shared configuration and service discovery.
      • Flagr - Flagr is an open-source feature flagging and A/B testing service.
      • Easegress - A cloud native high availability/performance traffic orchestration system with observability and extensibility.
      • consul - Consul is a tool for service discovery, monitoring and configuration.
      • flipt - A self contained feature flag solution written in Go and Vue.js
  • Social Media

  • Stream Processing

    • HTTP Clients

      • go-streams - Go stream processing library.
      • goio - An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2.
      • machine - Go library for writing and generating stream workers with built in metrics and traceability.
      • stream - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...
  • Style Guides

  • Template Engines

    • HTTP Clients

      • ego - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.
      • extemplate - Tiny wrapper around html/template to allow for easy file-based template inheritance.
      • fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/).
      • gospin - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations.
      • got - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more.
      • goview - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application.
      • jet - Jet template engine.
      • liquid - Go implementation of Shopify Liquid templates.
      • maroto - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.
      • pongo2 - Django-like template-engine for Go.
      • quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.
      • raymond - Complete handlebars implementation in Go.
      • Razor - Razor view engine for Golang.
      • Soy - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/).
      • sprig - Useful template functions for Go templates.
      • tbd - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata.
  • Testing

    • HTTP Clients

      • gocheck - More advanced testing framework alternative to gotest.
      • assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
      • baloo - Expressive and versatile end-to-end HTTP API testing made easy.
      • biff - Bifurcation testing framework, BDD compatible.
      • charlatan - Tool to generate fake interface implementations for tests.
      • covergates - Self-hosted code coverage report review and management service.
      • cupaloy - Simple snapshot testing addon for your test framework.
      • dbcleaner - Clean database for testing purpose, inspired by `database_cleaner` in Ruby.
      • dsunit - Datastore testing for SQL, NoSQL, structured files.
      • embedded-postgres - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test.
      • endly - Declarative end to end functional testing.
      • fixenv - Fixture manage engine, inspired by pytest fixtures.
      • fluentassert - Extensible, type-safe, fluent assertion Go library.
      • flute - HTTP client testing framework.
      • gherkingen - BDD boilerplate generator and framework.
      • ginkgo - BDD Testing Framework for Go.
      • gnomock - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks.
      • go-carpet - Tool for viewing test coverage in terminal.
      • go-cmp - Package for comparing Go values in tests.
      • go-hit - Hit is an http integration test framework written in golang.
      • go-mutesting - Mutation testing for Go source code.
      • go-mysql-test-container - Golang MySQL testcontainer to help with MySQL integration testing.
      • be - The minimalist generic test assertion library.
      • frisby - REST API testing framework.
      • badio - Extensions to Go's `testing/iotest` package.
      • commander - Tool for testing cli applications on windows, linux and osx.
      • go-testdeep - Extremely flexible golang deep comparison, extends the go testing package.
      • go-testpredicate - Test predicate style assertions library with extensive diagnostics output.
      • go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests.
      • goblin - Mocha like testing framework fo Go.
      • goc - Goc is a comprehensive coverage testing system for The Go Programming Language.
      • gocrest - Composable hamcrest-like matchers for Go assertions.
      • godog - Cucumber BDD framework for Go.
      • gofight - API Handler Testing for Golang Router framework.
      • gogiven - YATSPEC-like BDD testing framework for Go.
      • gomatch - library created for testing JSON against patterns.
      • gomega - Rspec like matcher/assertion library.
      • gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
      • gosuite - Brings lightweight test suites with setup/teardown facilities to `testing` by leveraging Go1.7's Subtests.
      • got - An enjoyable golang test framework.
      • gotest.tools - A collection of packages to augment the go testing package and support common patterns.
      • Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
      • httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing.
      • is - Professional lightweight testing mini-framework for Go.
      • jsonassert - Package for verifying that your JSON payloads are serialized correctly.
      • omg.testingtools - The simple library for change a values of private fields for testing.
      • schema - Quick and easy expression matching for JSON schemas used in requests and responses.
      • stop-and-go - Testing helper for concurrency.
      • testcase - Idiomatic testing framework for Behavior Driven Development.
      • testcontainers-go - A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
      • testfixtures - A helper for Rails' like test fixtures to test database applications.
      • Testify - Sacred extension to the standard go testing package.
      • testsql - Generate test data from SQL files before testing and clear it after finished.
      • testza - Full-featured test framework with nice colorized output.
      • trial - Quick and easy extendable assertions without introducing much boilerplate.
      • Tt - Simple and colorful test tools.
      • wstest - Websocket client for unit-testing a websocket http.Handler.
      • counterfeiter - Tool for generating self-contained mock objects.
      • genmock - Go mocking system with code generator for building calls of the interface methods.
      • go-localstack - Tool for using localstack in AWS testing.
      • go-sqlmock - Mock SQL driver for testing database interactions.
      • go-txdb - Single transaction based database driver mainly for testing purposes.
      • gock - Versatile HTTP mocking made easy.
      • gomock - Mocking framework for the Go programming language.
      • govcr - HTTP mock for Golang: record and replay HTTP interactions for offline testing.
      • hoverfly - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI.
      • httpmock - Easy mocking of HTTP responses from external resources.
      • minimock - Mock generator for Go interfaces.
      • mockery - Tool to generate Go interfaces.
      • mockhttp - Mock object for Go http.ResponseWriter.
      • mockit - Allows functions and method easy mocking, without defining new types; it's similar to Mockito for Java.
      • mooncake - A simple way to generate mocks for multiple purposes
      • timex - A test-friendly replacement for the native `time` package.
      • go-fuzz - Randomized testing system.
      • gofuzz - Library for populating go objects with random values.
      • Tavor - Generic fuzzing and delta-debugging framework.
      • cdp - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it.
      • ggr - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs.
      • rod - A Devtools driver to make web automation and scraping easy.
      • selenoid - alternative Selenium hub server that launches browsers within containers.
      • failpoint - An implementation of [failpoints](https://www.freebsd.org/cgi/man.cgi?query=fail) for Golang.
      • GoSpec - BDD-style testing framework for the Go programming language.
      • GoConvey - BDD-style framework with web UI and live reload.
      • Gont - Go network testing toolkit for testing building complex network topologies using Linux namespaces.
      • chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
      • restit - Go micro framework to help writing RESTful API integration test.
      • go-snaps - Jest-like snapshot testing in Golang.
      • playwright-go - browser automation library to control Chromium, Firefox and WebKit with a single API.
  • Text Processing

    • Formatters

      • bytes - Formats and parses numeric byte values (10K, 2M, 3G, etc.).
      • address - Handles address representation, validation and formatting.
      • align - A general purpose application that aligns text.
      • go-fixedwidth - Fixed-width text formatting (encoder/decoder with reflection).
      • go-humanize - Formatters for time, numbers, and memory size to human readable format.
      • gotabulate - Easily pretty-print your tabular data with Go.
      • textwrap - Wraps text at end of lines. Implementation of `textwrap` module from Python.
    • Markup Languages

      • bafi - Universal JSON, BSON, YAML, XML translator to ANY format using templates.
      • bbConvert - Converts bbCode to HTML that allows you to add support for custom bbCode tags.
      • blackfriday - Markdown processor in Go.
      • go-toml - Go library for the TOML format with query support and handy cli tools.
      • goldmark - A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured.
      • goq - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery).
      • html-to-markdown - Convert HTML to Markdown. Even works with entire websites and can be extended through rules.
      • htmlquery - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression.
      • htmlyaml - Rich rendering of YAML as HTML in Go
      • mxj - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages.
      • toml - TOML configuration format (encoder/decoder with reflection).
      • go-output-format - Output go structures into multiple formats (YAML/JSON/etc) in your command line app.
      • github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
    • Parsers/Encoders/Decoders

      • allot - Placeholder and wildcard text parsing for CLI tools and bots.
      • codetree - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure.
      • commonregex - A collection of common regular expressions for Go.
      • doi - Document object identifier (doi) parser in Go.
      • editorconfig-core-go - Editorconfig file parser and manipulator for Go.
      • encdec - Package provides a generic interface to encoders and decoders.
      • go-fasttld - High performance effective top level domains (eTLD) extraction module.
      • go-nmea - NMEA parser library for the Go language.
      • go-vcard - Parse and format vCard.
      • gofeed - Parse RSS and Atom feeds in Go.
      • gographviz - Parses the Graphviz DOT language.
      • gonameparts - Parses human names into individual name parts.
      • ltsv - High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go.
      • normalize - Sanitize, normalize and compare fuzzy text.
      • omniparser - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema.