Go to file
George Shammas 3feb4d428d bump deps 2023-03-26 08:11:07 -04:00
.github/workflows Update actions/setup-go action to v4 2023-03-15 18:44:42 +00:00
templates Easier cURL command copy/paste 2022-09-27 09:53:44 -04:00
.dockerignore Add Dockerfile and docker-compose.yml 2020-10-05 09:55:52 -04:00
.gitignore Progress 2018-12-27 22:12:12 +00:00
.version Add nix flake files 2020-11-15 21:19:12 -05:00
Dockerfile Switch to using jsoniter 2022-01-05 12:23:33 -05:00
LICENSE Adding dummy readme and license file 2014-07-09 11:17:34 -04:00
README.md Update README.md 2022-06-26 19:36:18 -04:00
default.nix Add nix flake files 2020-11-15 21:19:12 -05:00
docker-compose.yml Add Dockerfile and docker-compose.yml 2020-10-05 09:55:52 -04:00
flake.lock Update deps 2022-12-06 19:57:16 -05:00
flake.nix Update deps 2022-12-06 19:57:16 -05:00
go.mod bump deps 2023-03-26 08:11:07 -04:00
go.sum bump deps 2023-03-26 08:11:07 -04:00
main.go Add ability to specify country code header 2023-01-30 20:09:51 -05:00
renovate.json Update renovate.json 2022-07-07 15:46:01 -04:00
shell.nix Add nix flake files 2020-11-15 21:19:12 -05:00
web-service.systemd Added Javascript endpoints and systemd service example 2022-01-04 17:06:08 -05:00

README.md

ifconfig.io

Build Status

Inspired by ifconfig.me, but designed for pure speed. A single server can do 18,000 requests per seconds while only consuming 50megs of ram.

I used the gin framework as it does several things to ensure that there are no memory allocations on each request, keeping the GC happy and preventing unnessary allocations.

Tested to handle 10,000 clients doing 90,000 requests persecond on modest hardware with an average response time of 42ms. Easily servicing over 5 million requests in a minute. (Updated June, 2022)

LoadTest