791 Resources
Golang go-http-request-routing-benchmark Libraries
HTTP mocking for Golang
httpmock Easy mocking of http responses from external resources. Install Currently supports Go 1.7 - 1.15. v1 branch has to be used instead of master.
Lightweight service virtualization/API simulation tool for developers and testers
API simulations for development and testing Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you can create realistic simul
HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing
govcr A Word Of Warning I'm in the process of partly rewriting govcr to offer better support for cassette mutations. This is necessary because when I
HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽
gock Versatile HTTP mocking made easy in Go that works with any net/http based stdlib implementation. Heavily inspired by nock. There is also its Pyth
End-to-end HTTP and REST API testing for Go.
httpexpect Concise, declarative, and easy to use end-to-end HTTP and REST API testing for Go (golang). Basically, httpexpect is a set of chainable bui
Record and replay your HTTP interactions for fast, deterministic and accurate tests
go-vcr go-vcr simplifies testing by recording your HTTP interactions and replaying them in future runs in order to provide fast, deterministic and acc
Extremely flexible golang deep comparison, extends the go testing package and tests HTTP APIs
go-testdeep Extremely flexible golang deep comparison, extends the go testing package. Latest news Synopsis Description Installation Functions Availab
http integration test framework
go-hit hit is an http integration test framework written in golang. It is designed to be flexible as possible, but to keep a simple to use interface f
Golang HTTP client testing framework
flute Golang HTTP client testing framework Presentation https://speakerdeck.com/szksh/flute-golang-http-client-testing-framework Overview flute is the
Expressive end-to-end HTTP API testing made easy in Go
baloo Expressive and versatile end-to-end HTTP API testing made easy in Go (golang), built on top of gentleman HTTP client toolkit. Take a look to the
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Trickster is an HTTP reverse proxy/cache for http applications and a dashboard query accelerator for time series databases. Learn more below, and chec
High-performance PHP application server, load-balancer and process manager written in Golang
[RR2-BETA] RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports runnin
A proxy server than converts JSON request bodies to protocol buffers
Welcome to Protoxy 👋 What is Protoxy? Protoxy allows you to test your REST APIs that use Protocol Buffer serialization through Postman and other API
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-feature-flag A feature flag solution, with YAML file in the backend (S3, GitHub, HTTP, local file ...). No server to install, just add a file i
Open platform to collect and prioritize product feedback
Fider A platform to collect and organize customer feedback. Let your customers share, vote and discuss on suggestions they have to make your product e
Fast, multi-platform web server with automatic HTTPS
a project Every site on HTTPS Caddy is an extensible server platform that uses TLS by default. Releases · Documentation · Get Help Menu Features Insta
:tophat: Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support
Web server with built-in support for QUIC, HTTP/2, Lua, Markdown, Pongo2, HyperApp, Amber, Sass(SCSS), GCSS, JSX, BoltDB (built-in, stores the databas
HTTP middleware for Go that facilitates some quick security wins.
Secure Secure is an HTTP middleware for Go that facilitates some quick security wins. It's a standard net/http Handler, and can be used with many fram
Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it.
vfsgen Package vfsgen takes an http.FileSystem (likely at go generate time) and generates Go code that statically implements the provided http.FileSys
Embed files into a Go executable
statik statik allows you to embed a directory of static files into your Go binary to be later served from an http.FileSystem. Is this a crazy idea? No
:file_folder: Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks
Package statics Package statics embeds static files into your go applications. It provides helper methods and objects to retrieve embeded files and se
Unfancy resources embedding for Go with out of box http.FileSystem support.
Resources Unfancy resources embedding with Go. No blings. No runtime dependency. Idiomatic Library First design. Dude, Why? Yes, there is quite a lot
a better customizable tool to embed files in go; also update embedded files remotely without restarting the server
fileb0x What is fileb0x? A better customizable tool to embed files in go. It is an alternative to go-bindata that have better features and organized c
A Go HTTP client library for creating and sending API requests
Sling Sling is a Go HTTP client library for creating and sending API requests. Slings store HTTP Request properties to simplify sending requests and d
A nicer interface for golang stdlib HTTP client
rq A nicer interface for golang stdlib HTTP client Documents rq: here client: here jar: here Why? Because golang HTTP client is a pain in the a... Fea
Simple HTTP and REST client library for Go
Resty Simple HTTP and REST client library for Go (inspired by Ruby rest-client) Features section describes in detail about Resty capabilities Resty Co
http client for golang
Request HTTP client for golang, Inspired by Javascript-axios Python-request. If you have experience about axios or requests, you will love it. No 3rd
Go (golang) http calls with retries and backoff
pester pester wraps Go's standard lib http client to provide several options to increase resiliency in your request. If you experience poor network co
Enriches the standard go http client with retry functionality.
httpRetry Enriches the standard go http client with retry functionality using a wrapper around the Roundtripper interface. The advantage of this libra
An enhanced HTTP client for Go
Heimdall Description Installation Usage Making a simple GET request Creating a hystrix-like circuit breaker Creating a hystrix-like circuit breaker wi
A Go "clone" of the great and famous Requests library
GRequests A Go "clone" of the great and famous Requests library License GRequests is licensed under the Apache License, Version 2.0. See LICENSE for t
An enhanced http client for Golang
go-http-client An enhanced http client for Golang Documentation on go.dev 🔗 This package provides you a http client package for your http requests. Y
Full-featured, plugin-driven, extensible HTTP client toolkit for Go
gentleman Full-featured, plugin-driven, middleware-oriented toolkit to easily create rich, versatile and composable HTTP clients in Go. gentleman embr
HTTP service to generate PDF from Json requests
pdfgen HTTP service to generate PDF from Json requests Install and run The recommended method is to use the docker container by mounting your template
golang long polling library. Makes web pub-sub easy via HTTP long-poll server :smiley: :coffee: :computer:
golongpoll Golang long polling library. Makes web pub-sub easy via an HTTP long-poll server. New in v1.1 Deprecated CreateManager and CreateCustomMana
⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol.
APNS/2 APNS/2 is a go package designed for simple, flexible and fast Apple Push Notifications on iOS, OSX and Safari using the new HTTP/2 Push provide
🌿 Automated HTTP (microservices) supervisor
Epazote 🌿 Automated HTTP (microservices) supervisor Epazote automatically update/add services specified in a file call epazote.yml. Periodically chec
xlog is a logger for net/context aware HTTP applications
⚠️ Check zerolog, the successor of xlog. HTTP Handler Logger xlog is a logger for net/context aware HTTP applications. Unlike most loggers, xlog will
Package httpretty prints the HTTP requests you make with Go pretty on your terminal.
httpretty Package httpretty prints the HTTP requests of your Go programs pretty on your terminal screen. It is mostly inspired in curl's --verbose mod
Executing shell commands via HTTP server
shell2http HTTP-server to execute shell commands. Designed for development, prototyping or remote control. Settings through two command line arguments
Pusher Channels HTTP API library for Go
Pusher Channels HTTP Go Library The Golang library for interacting with the Pusher Channels HTTP API. This package lets you trigger events to your cli
httpstream provides HTTP handlers for simultaneous streaming uploads and downloads of objects, as well as persistence and a standalone server.
httpfstream httpfstream provides HTTP handlers for simultaneous streaming uploads and downloads of files, as well as persistence and a standalone serv
Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe)
endless Zero downtime restarts for golang HTTP and HTTPS servers. (for golang 1.3+) Inspiration & Credits Well... it's what you want right - no need t
TCP proxy, highjacks HTTP to allow CORS
portproxy A shitty TCP proxy that relays all requests to a local port to a remote server. portproxy -port 8080 -raddr google.com:80 Will proxy all TC
The interactive web server
The interactive web server. HTTPLabs let you inspect HTTP requests and forge responses. Install Golang go get github.com/gchaincl/httplab go install g
Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.
Fortio Fortio (Φορτίο) started as, and is, Istio's load testing tool and now graduated to be its own project. Fortio is also used by, among others, Me
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than
package for building REST-style Web Services using Go
go-restful package for building REST-style Web Services using Google Go Code examples using v3 REST asks developers to use HTTP methods explicitly and
Eudore is the core of a golang lightweight web framework.
Eudore eudore是一个golang轻量级web框架核心,可以轻松扩展成一个技术栈专用框架,具有完整框架设计体系。 反馈和交流请加群组:QQ群373278915。 Features 易扩展:主要设计目标、核心全部解耦,接口即为逻辑。 简单:对象语义明确,框架代码量少复杂度低,无依赖库。 易用
A minimal framework to build web apps; with handler chaining, middleware support; and most of all standard library compliant HTTP handlers(i.e. http.HandlerFunc).
WebGo v4.1.3 WebGo is a minimalistic framework for Go to build web applications (server side) with zero 3rd party dependencies. Unlike full-fledged fr
⚡ Rux is an simple and fast web framework. support middleware, compatible http.Handler interface. 简单且快速的 Go web 框架,支持中间件,兼容 http.Handler 接口
Rux Simple and fast web framework for build golang HTTP applications. NOTICE: v1.3.x is not fully compatible with v1.2.x version Fast route match, sup
Pleasures for Web in Golang
Rex is a library for performant & modular web development in Go, designed to work directly with net/http. Supported Versions v1.4 v1.5 v1.6 v1.7 v1.8
Lightweight web framework based on net/http.
Goweb Light weight web framework based on net/http. Includes routing middleware logging easy CORS (experimental) Goweb aims to rely only on the standa
A Microservice Toolkit from The New York Times
Gizmo Microservice Toolkit This toolkit provides packages to put together server and pubsub daemons with the following features: Standardized configur
Gearbox :gear: is a web framework written in Go with a focus on high performance
gearbox ⚙️ is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x fa
A Go package for handling common HTTP JSON responses.
go-respond A Go package for handling common HTTP JSON responses. Installation go get github.com/nicklaw5/go-respond Usage The goal of go-respond is to
Framework for performing work asynchronously, outside of the request flow
JobRunner JobRunner is framework for performing work asynchronously, outside of the request flow. It comes with cron to schedule and queue job functio
Make IoT a lot more fun with data.
Eywa What is Eywa? "Eywa is the guiding force and deity of Pandora and the Na'vi. All living things on Pandora connect to Eywa." -- Avatar Wiki Projec
Twilio Go library
twilio-go A client for accessing the Twilio API with several nice features: Easy-to-use helpers for purchasing phone numbers and sending MMS messages
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
imaginary Fast HTTP microservice written in Go for high-level image processing backed by bimg and libvips. imaginary can be used as private or public
gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services 🔒
gorilla/csrf gorilla/csrf is a HTTP middleware library that provides cross-site request forgery (CSRF) protection. It includes: The csrf.Protect middl
A lightweight go library for parsing form data or json from an http.Request.
Forms Forms is a lightweight, but incredibly useful go library for parsing form data from an http.Request. It supports multipart forms, url-encoded fo
Reflectionless data binding for Go's net/http (not actively maintained)
binding Reflectionless data binding for Go's net/http Features HTTP request data binding Data validation (custom and built-in) Error handling Benefits
Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it.
vfsgen Package vfsgen takes an http.FileSystem (likely at go generate time) and generates Go code that statically implements the provided http.FileSys
Bigfile -- a file transfer system that supports http, rpc and ftp protocol https://bigfile.site
Bigfile ———— a file transfer system that supports http, rpc and ftp protocol 简体中文 ∙ English Bigfile is a file transfer system, supports http, ftp and
a tool for handling file uploads simple
baraka a tool for handling file uploads for http servers makes it easier to make operations with files from the http request. Contents Install Simple
A drop-in replacement for Go errors, with some added sugar! Unwrap user-friendly messages, HTTP status code, easy wrapping with multiple error types.
Errors Errors package is a drop-in replacement of the built-in Go errors package with no external dependencies. It lets you create errors of 11 differ
Lightweight SMTP client written in Go
Hectane Hectane is both a Go package providing an SMTP queue for sending emails and a standalone application that exposes this functionality via an HT
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services
sleuth sleuth is a Go library that provides master-less peer-to-peer autodiscovery and RPC between HTTP services that reside on the same network. It w
Take control of your data, connect with anything, and expose it anywhere through protocols such as HTTP, GraphQL, and gRPC.
Semaphore Chat: Discord Documentation: Github pages Go package documentation: GoDev Take control of your data, connect with anything, and expose it an
A simple go implementation of json rpc 2.0 client over http
JSON-RPC 2.0 Client for golang A go implementation of an rpc client using json as data format over http. The implementation is based on the JSON-RPC 2
The Go language implementation of gRPC. HTTP/2 based RPC
gRPC-Go The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information
Martian is a library for building custom HTTP/S proxies
Martian Proxy Martian Proxy is a programmable HTTP proxy designed to be used for testing. Martian is a great tool to use if you want to: Verify that a
🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
dbbench Table of Contents Description Example Installation Supported Databases Usage Custom Scripts Troubeshooting Development Acknowledgements Descri
ClickHouse http proxy and load balancer
chproxy English | 简体中文 Chproxy, is an http proxy and load balancer for ClickHouse database. It provides the following features: May proxy requests to
A C/S Tool to Download Torrent Remotely and Retrieve Files Back Over HTTP at Full Speed without ISP Torrent Limitation.
remote-torrent Download Torrent Remotely and Retrieve Files Over HTTP at Full Speed without ISP Torrent Limitation. This repository is an extension to
Intuitive package for prettifying terminal/console output. http://godoc.org/github.com/ttacon/chalk
chalk Chalk is a go package for styling console/terminal output. Check out godoc for some example usage: http://godoc.org/github.com/ttacon/chalk The
Go (lang) HTTP session authentication
Go Session Authentication See git tags/releases for information about potentially breaking change. This package uses the Gorilla web toolkit's session
Basic and Digest HTTP Authentication for golang http
HTTP Authentication implementation in Go This is an implementation of HTTP Basic and HTTP Digest authentication in Go language. It is designed as a si
A Go library for doing header-based OAuth over HTTP or HTTPS.
Installation goinstall github.com/alloy-d/goauth Usage import ( "github.com/alloy-d/goauth" "os" ) func someFuncThatDoesStuffWithOAuth() (er
Straightforward HTTP session management
sessionup 🚀 Simple, yet effective HTTP session management and identification package Features Effortless session management: Initialization. Request
A dead simple, highly performant, highly customizable sessions middleware for go http servers.
If you're interested in jwt's, see my jwt library! Sessions A dead simple, highly performant, highly customizable sessions service for go http servers
Go session management for web servers (including support for Google App Engine - GAE).
Session The Go standard library includes a nice http server, but unfortunately it lacks a very basic and important feature: HTTP session management. T
HTTP Session Management for Go
SCS: HTTP Session Management for Go Features Automatic loading and saving of session data via middleware. Choice of server-side session stores includi
This package provides json web token (jwt) middleware for goLang http servers
jwt-auth jwt auth middleware in goLang. If you're interested in using sessions, checkout my sessions library! README Contents: Quickstart Performance
JSON Web Token library
About … a JSON Web Token (JWT) library for the Go programming language. Feature complete Full test coverage Dependency free Key management The API enf
🍍Jeff provides the simplest way to manage web sessions in Go.
jeff A tool for managing login sessions in Go. Motivation I was looking for a simple session management wrapper for Go and from what I could tell ther
HTTP Authentication middlewares
goji/httpauth httpauth currently provides HTTP Basic Authentication middleware for Go. It is compatible with Go's own net/http, goji, Gin & anything t
The boss of http auth.
Authboss Authboss is a modular authentication system for the web. It has several modules that represent authentication and authorization features that
Gin is a HTTP web framework written in Go (Golang).
Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via SSH.
Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via SSH. Single executable including both client and server. Written in Go (golang). Chisel is mainly useful for passing through firewalls, though it can also be used to provide a secure endpoint into your network.