{
  "context": {
    "label": "GitHub Actions benchmark comparison",
    "sourceCommit": "33d8f1fd80edbc2dcd9af19b2de41447cd70b118",
    "sourceDate": "2026-10-04",
    "measurementDate": "2026-10-04",
    "cpu": "AMD EPYC 9V74",
    "os": "Ubuntu 24.04 x86_64 \u00b7 Linux 6.17.0-1022-azure",
    "rust": "1.98.1",
    "go": "\u22651.25.0; exact compiler not archived (launcher 1.23.1)",
    "dataset": "Deterministic City / SplitMix64 scaling fixtures",
    "precision": "Parsed from generated SVG tooltip labels at their exported precision. Raw harness result rows are archived; individual timed samples and confidence intervals are not retained.",
    "notes": "One full make bench-compare execution on a shared CI runner with 4 available vCPUs. The 8/16-worker cases oversubscribe those CPUs. Results are not a controlled comparison with the earlier Ryzen measurements.",
    "libraries": [
      {
        "name": "libmaxminddb-rs",
        "version": "0.3.1",
        "language": "Rust",
        "role": "Reader + writer"
      },
      {
        "name": "libmaxminddb (C)",
        "version": "1.14.1",
        "language": "C",
        "role": "Reader"
      },
      {
        "name": "maxminddb-rust",
        "version": "0.32.0",
        "language": "Rust",
        "role": "Reader"
      },
      {
        "name": "geoip2-rs",
        "version": "0.1.8",
        "language": "Rust",
        "role": "Reader"
      },
      {
        "name": "maxminddb-golang",
        "version": "2.6.0",
        "language": "Go",
        "role": "Reader"
      },
      {
        "name": "mmdbwriter",
        "version": "1.2.0",
        "language": "Go",
        "role": "Writer"
      }
    ],
    "chartsSha256": "8f71fbffed6104d8e302aeb75b39c726a9b7b71d83666ccf82e71120c625e2fd",
    "exportCommit": "d01ab79c3a2951b3d45e6b2bb168bf74c2a50037",
    "availableCpus": 4,
    "cCompiler": "GCC 13.3.0",
    "workflowRunUrl": "https://github.com/0x00F6/libmaxminddb-rs/actions/runs/37203873066",
    "sourceExport": "https://github.com/0x00F6/libmaxminddb-rs/tree/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts",
    "rawResults": "data/run-2026-10-04/results.jsonl",
    "report": "data/run-2026-10-04/report.html",
    "compilerNote": "The recorded Go launcher is 1.23.1. The module requires 1.25.0 and GOTOOLCHAIN=auto was enabled; the effective Go compiler was not captured. The unmodified generated report records the launcher version.",
    "durationSeconds": 743,
    "successfulRows": 238,
    "unsupportedRows": 1,
    "architecture": "x86_64"
  },
  "charts": [
    {
      "id": "throughput-ipv4-random",
      "title": "IPv4 Throughput \u2014 Random Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on random workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 35.56,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 35.56 M ops/s (IPv4 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 16.85,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 16.85 M ops/s (IPv4 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 15.8,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 15.80 M ops/s (IPv4 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 20.42,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 20.42 M ops/s (IPv4 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 13.2,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 13.20 M ops/s (IPv4 Throughput \u2014 Random Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv4-random.svg",
      "sha256": "2a13f053af76c6b11d7334f275c22f7ddcceb2018f74255246024a5e1db9aa15"
    },
    {
      "id": "throughput-ipv4-hot",
      "title": "IPv4 Throughput \u2014 Hot Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on hot workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 2.7,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 2.70 M ops/s (IPv4 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 1.59,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 1.59 M ops/s (IPv4 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 1.75,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 1.75 M ops/s (IPv4 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 2.36,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 2.36 M ops/s (IPv4 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 1.24,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 1.24 M ops/s (IPv4 Throughput \u2014 Hot Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv4-hot.svg",
      "sha256": "6a3f30810d54212b286c260de4a73a0e7cc0384ca541feb3e8ac26624891e513"
    },
    {
      "id": "throughput-ipv4-sequential",
      "title": "IPv4 Throughput \u2014 Sequential Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on sequential workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 241.12,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 241.12 M ops/s (IPv4 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 24.85,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 24.85 M ops/s (IPv4 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 21.04,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 21.04 M ops/s (IPv4 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 23.97,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 23.97 M ops/s (IPv4 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 19.34,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 19.34 M ops/s (IPv4 Throughput \u2014 Sequential Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv4-sequential.svg",
      "sha256": "cd827160a0b06bcd453f101a2866ac09e5bd0185fcc38ce419a3f933007855e4"
    },
    {
      "id": "throughput-ipv4-absent",
      "title": "IPv4 Throughput \u2014 Absent Keys (1M)",
      "subtitle": "Single-threaded operations/sec on absent workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 273.57,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 273.57 M ops/s (IPv4 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 140.35,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 140.35 M ops/s (IPv4 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 48.33,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 48.33 M ops/s (IPv4 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 129.56,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 129.56 M ops/s (IPv4 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 52.67,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 52.67 M ops/s (IPv4 Throughput \u2014 Absent Keys (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv4-absent.svg",
      "sha256": "e3021cd1eb8fee1047286cfa116cc3641c550896f2e6dc30723a360ba3649696"
    },
    {
      "id": "throughput-ipv6-random",
      "title": "IPv6 Throughput \u2014 Random Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on random workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 92.25,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 92.25 M ops/s (IPv6 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 56.34,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 56.34 M ops/s (IPv6 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 31.75,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 31.75 M ops/s (IPv6 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 41.99,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 41.99 M ops/s (IPv6 Throughput \u2014 Random Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 24.13,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 24.13 M ops/s (IPv6 Throughput \u2014 Random Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv6-random.svg",
      "sha256": "9fb5c842dabfb65ceba02971c2601d6282158276f74b0aed9a6e2139999f19aa"
    },
    {
      "id": "throughput-ipv6-hot",
      "title": "IPv6 Throughput \u2014 Hot Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on hot workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 2.51,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 2.51 M ops/s (IPv6 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 1.42,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 1.42 M ops/s (IPv6 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 1.57,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 1.57 M ops/s (IPv6 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 1.94,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 1.94 M ops/s (IPv6 Throughput \u2014 Hot Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 1.14,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 1.14 M ops/s (IPv6 Throughput \u2014 Hot Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv6-hot.svg",
      "sha256": "6d2836c9ded6197b9b5fea5e60b53fd5f6611982eb94ace882c817802148bd2d"
    },
    {
      "id": "throughput-ipv6-sequential",
      "title": "IPv6 Throughput \u2014 Sequential Lookups (1M)",
      "subtitle": "Single-threaded operations/sec on sequential workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 2.5,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 2.50 M ops/s (IPv6 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 1.42,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 1.42 M ops/s (IPv6 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 1.56,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 1.56 M ops/s (IPv6 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 1.98,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 1.98 M ops/s (IPv6 Throughput \u2014 Sequential Lookups (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 1.13,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 1.13 M ops/s (IPv6 Throughput \u2014 Sequential Lookups (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv6-sequential.svg",
      "sha256": "7a1df37f6a0721d5fd218f9fbf4f1d05d036a96cf8f78f4033d0c6a0949c6cd8"
    },
    {
      "id": "throughput-ipv6-absent",
      "title": "IPv6 Throughput \u2014 Absent Keys (1M)",
      "subtitle": "Single-threaded operations/sec on absent workload (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 7.93,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb-rs: 7.93 M ops/s (IPv6 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 2.74,
          "unit": "M ops/s",
          "dimension": null,
          "label": "libmaxminddb (C): 2.74 M ops/s (IPv6 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "maxminddb-rust",
          "value": 2.85,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-rust: 2.85 M ops/s (IPv6 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "geoip2-rs",
          "value": 2.68,
          "unit": "M ops/s",
          "dimension": null,
          "label": "geoip2-rs: 2.68 M ops/s (IPv6 Throughput \u2014 Absent Keys (1M))"
        },
        {
          "library": "maxminddb-golang",
          "value": 2.63,
          "unit": "M ops/s",
          "dimension": null,
          "label": "maxminddb-golang: 2.63 M ops/s (IPv6 Throughput \u2014 Absent Keys (1M))"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/throughput-ipv6-absent.svg",
      "sha256": "f5714a383e541859389ae2b94d5e4a15304913cf4abeea1134cc04cb951a5cd8"
    },
    {
      "id": "candlestick-percentiles-ipv4",
      "title": "Candlestick Percentile Rank \u2014 IPv4 Lookups",
      "subtitle": "Quantile spread: Min (lower wick) \u2192 p50/Median to p95 (body) \u2192 p99 Tail",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 441.0,
          "unit": "ns",
          "dimension": null,
          "label": "libmaxminddb-rs: Min=20.0 ns | p50=30.0 ns | p95=400.0 ns | p99=441.0 ns | Max=17.23 \u00b5s",
          "quantiles": {
            "min": 20.0,
            "p50": 30.0,
            "p95": 400.0,
            "p99": 441.0,
            "max": 17230.0
          }
        },
        {
          "library": "geoip2-rs",
          "value": 541.0,
          "unit": "ns",
          "dimension": null,
          "label": "geoip2-rs: Min=20.0 ns | p50=40.0 ns | p95=491.0 ns | p99=541.0 ns | Max=14.37 \u00b5s",
          "quantiles": {
            "min": 20.0,
            "p50": 40.0,
            "p95": 491.0,
            "p99": 541.0,
            "max": 14370.0
          }
        },
        {
          "library": "maxminddb-rust",
          "value": 641.0,
          "unit": "ns",
          "dimension": null,
          "label": "maxminddb-rust: Min=30.0 ns | p50=50.0 ns | p95=561.0 ns | p99=641.0 ns | Max=16.42 \u00b5s",
          "quantiles": {
            "min": 30.0,
            "p50": 50.0,
            "p95": 561.0,
            "p99": 641.0,
            "max": 16420.0
          }
        },
        {
          "library": "libmaxminddb (C)",
          "value": 691.0,
          "unit": "ns",
          "dimension": null,
          "label": "libmaxminddb (C): Min=20.0 ns | p50=30.0 ns | p95=661.0 ns | p99=691.0 ns | Max=8.36 \u00b5s",
          "quantiles": {
            "min": 20.0,
            "p50": 30.0,
            "p95": 661.0,
            "p99": 691.0,
            "max": 8360.0
          }
        },
        {
          "library": "maxminddb-golang",
          "value": 851.0,
          "unit": "ns",
          "dimension": null,
          "label": "maxminddb-golang: Min=40.0 ns | p50=50.0 ns | p95=801.0 ns | p99=851.0 ns | Max=7.23 \u00b5s",
          "quantiles": {
            "min": 40.0,
            "p50": 50.0,
            "p95": 801.0,
            "p99": 851.0,
            "max": 7230.0
          }
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/candlestick-percentiles-ipv4.svg",
      "sha256": "9f396002644b70e48579ae319856952d096f75d0e8108270feee4d4912d67003"
    },
    {
      "id": "candlestick-percentiles-ipv6",
      "title": "Candlestick Percentile Rank \u2014 IPv6 Lookups",
      "subtitle": "Quantile spread: Min (lower wick) \u2192 p50/Median to p95 (body) \u2192 p99 Tail",
      "points": [
        {
          "library": "libmaxminddb (C)",
          "value": 70.0,
          "unit": "ns",
          "dimension": null,
          "label": "libmaxminddb (C): Min=20.0 ns | p50=30.0 ns | p95=60.0 ns | p99=70.0 ns | Max=12.91 \u00b5s",
          "quantiles": {
            "min": 20.0,
            "p50": 30.0,
            "p95": 60.0,
            "p99": 70.0,
            "max": 12910.0
          }
        },
        {
          "library": "maxminddb-golang",
          "value": 100.0,
          "unit": "ns",
          "dimension": null,
          "label": "maxminddb-golang: Min=50.0 ns | p50=60.0 ns | p95=81.0 ns | p99=100.0 ns | Max=6.88 \u00b5s",
          "quantiles": {
            "min": 50.0,
            "p50": 60.0,
            "p95": 81.0,
            "p99": 100.0,
            "max": 6880.0
          }
        },
        {
          "library": "libmaxminddb-rs",
          "value": 161.0,
          "unit": "ns",
          "dimension": null,
          "label": "libmaxminddb-rs: Min=30.0 ns | p50=40.0 ns | p95=60.0 ns | p99=161.0 ns | Max=13.49 \u00b5s",
          "quantiles": {
            "min": 30.0,
            "p50": 40.0,
            "p95": 60.0,
            "p99": 161.0,
            "max": 13490.0
          }
        },
        {
          "library": "geoip2-rs",
          "value": 180.0,
          "unit": "ns",
          "dimension": null,
          "label": "geoip2-rs: Min=30.0 ns | p50=50.0 ns | p95=80.0 ns | p99=180.0 ns | Max=8.38 \u00b5s",
          "quantiles": {
            "min": 30.0,
            "p50": 50.0,
            "p95": 80.0,
            "p99": 180.0,
            "max": 8380.0
          }
        },
        {
          "library": "maxminddb-rust",
          "value": 200.0,
          "unit": "ns",
          "dimension": null,
          "label": "maxminddb-rust: Min=30.0 ns | p50=50.0 ns | p95=160.0 ns | p99=200.0 ns | Max=8.36 \u00b5s",
          "quantiles": {
            "min": 30.0,
            "p50": 50.0,
            "p95": 160.0,
            "p99": 200.0,
            "max": 8360.0
          }
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/candlestick-percentiles-ipv6.svg",
      "sha256": "b15afcaa1ad4eb659ee0f32cc5ef89177df604396c137ed0efddad22e6e8b672"
    },
    {
      "id": "database-size-scaling",
      "title": "p99 Tail Latency vs Database Size",
      "subtitle": "p99 tail latency as database grows from 1K to 5M entries (lower is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 370.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 370.00 ns @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 350.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 350.00 ns @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 390.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 390.00 ns @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 431.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 431.00 ns @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 350.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 350.00 ns @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 401.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 401.00 ns @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 411.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 411.00 ns @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 361.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 361.00 ns @ 5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 641.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "libmaxminddb (C): 641.00 ns @ 1K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 641.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "libmaxminddb (C): 641.00 ns @ 10K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 741.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "libmaxminddb (C): 741.00 ns @ 100K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 1001.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "libmaxminddb (C): 1001.00 ns @ 500K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 831.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "libmaxminddb (C): 831.00 ns @ 1M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 872.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "libmaxminddb (C): 872.00 ns @ 1.5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 741.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "libmaxminddb (C): 741.00 ns @ 2M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 781.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "libmaxminddb (C): 781.00 ns @ 5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 501.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "maxminddb-rust: 501.00 ns @ 1K"
        },
        {
          "library": "maxminddb-rust",
          "value": 520.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "maxminddb-rust: 520.00 ns @ 10K"
        },
        {
          "library": "maxminddb-rust",
          "value": 841.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "maxminddb-rust: 841.00 ns @ 100K"
        },
        {
          "library": "maxminddb-rust",
          "value": 641.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "maxminddb-rust: 641.00 ns @ 500K"
        },
        {
          "library": "maxminddb-rust",
          "value": 541.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "maxminddb-rust: 541.00 ns @ 1M"
        },
        {
          "library": "maxminddb-rust",
          "value": 772.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "maxminddb-rust: 772.00 ns @ 1.5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 821.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "maxminddb-rust: 821.00 ns @ 2M"
        },
        {
          "library": "maxminddb-rust",
          "value": 781.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "maxminddb-rust: 781.00 ns @ 5M"
        },
        {
          "library": "geoip2-rs",
          "value": 441.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "geoip2-rs: 441.00 ns @ 1K"
        },
        {
          "library": "geoip2-rs",
          "value": 431.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "geoip2-rs: 431.00 ns @ 10K"
        },
        {
          "library": "geoip2-rs",
          "value": 451.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "geoip2-rs: 451.00 ns @ 100K"
        },
        {
          "library": "geoip2-rs",
          "value": 661.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "geoip2-rs: 661.00 ns @ 500K"
        },
        {
          "library": "geoip2-rs",
          "value": 471.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "geoip2-rs: 471.00 ns @ 1M"
        },
        {
          "library": "geoip2-rs",
          "value": 501.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "geoip2-rs: 501.00 ns @ 1.5M"
        },
        {
          "library": "geoip2-rs",
          "value": 891.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "geoip2-rs: 891.00 ns @ 2M"
        },
        {
          "library": "geoip2-rs",
          "value": 571.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "geoip2-rs: 571.00 ns @ 5M"
        },
        {
          "library": "maxminddb-golang",
          "value": 620.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "maxminddb-golang: 620.00 ns @ 1K"
        },
        {
          "library": "maxminddb-golang",
          "value": 731.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "maxminddb-golang: 731.00 ns @ 10K"
        },
        {
          "library": "maxminddb-golang",
          "value": 621.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "maxminddb-golang: 621.00 ns @ 100K"
        },
        {
          "library": "maxminddb-golang",
          "value": 731.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "maxminddb-golang: 731.00 ns @ 500K"
        },
        {
          "library": "maxminddb-golang",
          "value": 741.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "maxminddb-golang: 741.00 ns @ 1M"
        },
        {
          "library": "maxminddb-golang",
          "value": 812.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "maxminddb-golang: 812.00 ns @ 1.5M"
        },
        {
          "library": "maxminddb-golang",
          "value": 1032.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "maxminddb-golang: 1032.00 ns @ 2M"
        },
        {
          "library": "maxminddb-golang",
          "value": 1042.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "maxminddb-golang: 1042.00 ns @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/database-size-scaling.svg",
      "sha256": "7726669d17db250f2d5c1cf74d4206e06cdec4fb4fac238b7bee97605c2af79e"
    },
    {
      "id": "memory-rss-after-open",
      "title": "RSS After Open (mmap)",
      "subtitle": "Median of 3 isolated processes \u00b7 Zoomed Y axis (not zero-based)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 7.03125,
          "unit": "MiB",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 7.03125 MiB (7372800 bytes) @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 9.2578125,
          "unit": "MiB",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 9.2578125 MiB (9707520 bytes) @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 34.796875,
          "unit": "MiB",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 34.796875 MiB (36487168 bytes) @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 101.6640625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 101.6640625 MiB (106602496 bytes) @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 175.41015625,
          "unit": "MiB",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 175.41015625 MiB (183930880 bytes) @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 261.1015625,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 261.1015625 MiB (273784832 bytes) @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 331.42578125,
          "unit": "MiB",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 331.42578125 MiB (347525120 bytes) @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 719.265625,
          "unit": "MiB",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 719.265625 MiB (754204672 bytes) @ 5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.015625,
          "unit": "MiB",
          "dimension": "1K",
          "label": "libmaxminddb (C): 6.015625 MiB (6307840 bytes) @ 1K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.05859375,
          "unit": "MiB",
          "dimension": "10K",
          "label": "libmaxminddb (C): 6.05859375 MiB (6352896 bytes) @ 10K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.02734375,
          "unit": "MiB",
          "dimension": "100K",
          "label": "libmaxminddb (C): 6.02734375 MiB (6320128 bytes) @ 100K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.06640625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "libmaxminddb (C): 6.06640625 MiB (6361088 bytes) @ 500K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.015625,
          "unit": "MiB",
          "dimension": "1M",
          "label": "libmaxminddb (C): 6.015625 MiB (6307840 bytes) @ 1M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.0546875,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "libmaxminddb (C): 6.0546875 MiB (6348800 bytes) @ 1.5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.03515625,
          "unit": "MiB",
          "dimension": "2M",
          "label": "libmaxminddb (C): 6.03515625 MiB (6328320 bytes) @ 2M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.0546875,
          "unit": "MiB",
          "dimension": "5M",
          "label": "libmaxminddb (C): 6.0546875 MiB (6348800 bytes) @ 5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.18359375,
          "unit": "MiB",
          "dimension": "1K",
          "label": "maxminddb-rust: 6.18359375 MiB (6483968 bytes) @ 1K"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.21875,
          "unit": "MiB",
          "dimension": "10K",
          "label": "maxminddb-rust: 6.21875 MiB (6520832 bytes) @ 10K"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.125,
          "unit": "MiB",
          "dimension": "100K",
          "label": "maxminddb-rust: 6.125 MiB (6422528 bytes) @ 100K"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.1640625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "maxminddb-rust: 6.1640625 MiB (6463488 bytes) @ 500K"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.09765625,
          "unit": "MiB",
          "dimension": "1M",
          "label": "maxminddb-rust: 6.09765625 MiB (6393856 bytes) @ 1M"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.15625,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "maxminddb-rust: 6.15625 MiB (6455296 bytes) @ 1.5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.12890625,
          "unit": "MiB",
          "dimension": "2M",
          "label": "maxminddb-rust: 6.12890625 MiB (6426624 bytes) @ 2M"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.1484375,
          "unit": "MiB",
          "dimension": "5M",
          "label": "maxminddb-rust: 6.1484375 MiB (6447104 bytes) @ 5M"
        },
        {
          "library": "geoip2-rs",
          "value": 5.98046875,
          "unit": "MiB",
          "dimension": "1K",
          "label": "geoip2-rs: 5.98046875 MiB (6270976 bytes) @ 1K"
        },
        {
          "library": "geoip2-rs",
          "value": 5.95703125,
          "unit": "MiB",
          "dimension": "10K",
          "label": "geoip2-rs: 5.95703125 MiB (6246400 bytes) @ 10K"
        },
        {
          "library": "geoip2-rs",
          "value": 5.9296875,
          "unit": "MiB",
          "dimension": "100K",
          "label": "geoip2-rs: 5.9296875 MiB (6217728 bytes) @ 100K"
        },
        {
          "library": "geoip2-rs",
          "value": 5.9765625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "geoip2-rs: 5.9765625 MiB (6266880 bytes) @ 500K"
        },
        {
          "library": "geoip2-rs",
          "value": 5.9296875,
          "unit": "MiB",
          "dimension": "1M",
          "label": "geoip2-rs: 5.9296875 MiB (6217728 bytes) @ 1M"
        },
        {
          "library": "geoip2-rs",
          "value": 5.96875,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "geoip2-rs: 5.96875 MiB (6258688 bytes) @ 1.5M"
        },
        {
          "library": "geoip2-rs",
          "value": 5.9453125,
          "unit": "MiB",
          "dimension": "2M",
          "label": "geoip2-rs: 5.9453125 MiB (6234112 bytes) @ 2M"
        },
        {
          "library": "geoip2-rs",
          "value": 5.9609375,
          "unit": "MiB",
          "dimension": "5M",
          "label": "geoip2-rs: 5.9609375 MiB (6250496 bytes) @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/memory-rss-after-open.svg",
      "sha256": "9063ca2a8b177460b1aacbd7eaf3ff18eaf0b4ec44fb6339096cc0eb7c007dc5"
    },
    {
      "id": "memory-rss-peak",
      "title": "Peak RSS During Lookups (mmap)",
      "subtitle": "Maximum of 3 kernel peaks \u00b7 reset after open \u00b7 1M lookups, 50% hits / 50% misses",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 7.12109375,
          "unit": "MiB",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 7.12109375 MiB (7467008 bytes) @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 9.2578125,
          "unit": "MiB",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 9.2578125 MiB (9707520 bytes) @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 34.87890625,
          "unit": "MiB",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 34.87890625 MiB (36573184 bytes) @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 101.67578125,
          "unit": "MiB",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 101.67578125 MiB (106614784 bytes) @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 175.4765625,
          "unit": "MiB",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 175.4765625 MiB (184000512 bytes) @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 261.1796875,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 261.1796875 MiB (273866752 bytes) @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 331.46484375,
          "unit": "MiB",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 331.46484375 MiB (347566080 bytes) @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 719.35546875,
          "unit": "MiB",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 719.35546875 MiB (754298880 bytes) @ 5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.0546875,
          "unit": "MiB",
          "dimension": "1K",
          "label": "libmaxminddb (C): 6.0546875 MiB (6348800 bytes) @ 1K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 6.98828125,
          "unit": "MiB",
          "dimension": "10K",
          "label": "libmaxminddb (C): 6.98828125 MiB (7327744 bytes) @ 10K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 14.6875,
          "unit": "MiB",
          "dimension": "100K",
          "label": "libmaxminddb (C): 14.6875 MiB (15400960 bytes) @ 100K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 43.16015625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "libmaxminddb (C): 43.16015625 MiB (45256704 bytes) @ 500K"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 74.7109375,
          "unit": "MiB",
          "dimension": "1M",
          "label": "libmaxminddb (C): 74.7109375 MiB (78340096 bytes) @ 1M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 120.65625,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "libmaxminddb (C): 120.65625 MiB (126517248 bytes) @ 1.5M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 153.59765625,
          "unit": "MiB",
          "dimension": "2M",
          "label": "libmaxminddb (C): 153.59765625 MiB (161058816 bytes) @ 2M"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 334.6171875,
          "unit": "MiB",
          "dimension": "5M",
          "label": "libmaxminddb (C): 334.6171875 MiB (350871552 bytes) @ 5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 6.3046875,
          "unit": "MiB",
          "dimension": "1K",
          "label": "maxminddb-rust: 6.3046875 MiB (6610944 bytes) @ 1K"
        },
        {
          "library": "maxminddb-rust",
          "value": 7.23828125,
          "unit": "MiB",
          "dimension": "10K",
          "label": "maxminddb-rust: 7.23828125 MiB (7589888 bytes) @ 10K"
        },
        {
          "library": "maxminddb-rust",
          "value": 14.87890625,
          "unit": "MiB",
          "dimension": "100K",
          "label": "maxminddb-rust: 14.87890625 MiB (15601664 bytes) @ 100K"
        },
        {
          "library": "maxminddb-rust",
          "value": 43.4140625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "maxminddb-rust: 43.4140625 MiB (45522944 bytes) @ 500K"
        },
        {
          "library": "maxminddb-rust",
          "value": 75.0,
          "unit": "MiB",
          "dimension": "1M",
          "label": "maxminddb-rust: 75 MiB (78643200 bytes) @ 1M"
        },
        {
          "library": "maxminddb-rust",
          "value": 120.91015625,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "maxminddb-rust: 120.91015625 MiB (126783488 bytes) @ 1.5M"
        },
        {
          "library": "maxminddb-rust",
          "value": 153.82421875,
          "unit": "MiB",
          "dimension": "2M",
          "label": "maxminddb-rust: 153.82421875 MiB (161296384 bytes) @ 2M"
        },
        {
          "library": "maxminddb-rust",
          "value": 334.84765625,
          "unit": "MiB",
          "dimension": "5M",
          "label": "maxminddb-rust: 334.84765625 MiB (351113216 bytes) @ 5M"
        },
        {
          "library": "geoip2-rs",
          "value": 6.11328125,
          "unit": "MiB",
          "dimension": "1K",
          "label": "geoip2-rs: 6.11328125 MiB (6410240 bytes) @ 1K"
        },
        {
          "library": "geoip2-rs",
          "value": 6.984375,
          "unit": "MiB",
          "dimension": "10K",
          "label": "geoip2-rs: 6.984375 MiB (7323648 bytes) @ 10K"
        },
        {
          "library": "geoip2-rs",
          "value": 14.68359375,
          "unit": "MiB",
          "dimension": "100K",
          "label": "geoip2-rs: 14.68359375 MiB (15396864 bytes) @ 100K"
        },
        {
          "library": "geoip2-rs",
          "value": 43.2265625,
          "unit": "MiB",
          "dimension": "500K",
          "label": "geoip2-rs: 43.2265625 MiB (45326336 bytes) @ 500K"
        },
        {
          "library": "geoip2-rs",
          "value": 74.8046875,
          "unit": "MiB",
          "dimension": "1M",
          "label": "geoip2-rs: 74.8046875 MiB (78438400 bytes) @ 1M"
        },
        {
          "library": "geoip2-rs",
          "value": 120.71875,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "geoip2-rs: 120.71875 MiB (126582784 bytes) @ 1.5M"
        },
        {
          "library": "geoip2-rs",
          "value": 153.6953125,
          "unit": "MiB",
          "dimension": "2M",
          "label": "geoip2-rs: 153.6953125 MiB (161161216 bytes) @ 2M"
        },
        {
          "library": "geoip2-rs",
          "value": 334.6484375,
          "unit": "MiB",
          "dimension": "5M",
          "label": "geoip2-rs: 334.6484375 MiB (350904320 bytes) @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/memory-rss-peak.svg",
      "sha256": "d942e875e4e643aa2b9964501ed20cdeae15cc46602e8794a6abc5a764683ce0"
    },
    {
      "id": "writer-throughput",
      "title": "Writer Insertion Throughput",
      "subtitle": "Insertion rate across database sizes (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 0.26672,
          "unit": "M ops/s",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 266.72 K ops/s @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 0.39135000000000003,
          "unit": "M ops/s",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 391.35 K ops/s @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.38493,
          "unit": "M ops/s",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 1384.93 K ops/s @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.27896,
          "unit": "M ops/s",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 1278.96 K ops/s @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.10325,
          "unit": "M ops/s",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 1103.25 K ops/s @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.3319100000000001,
          "unit": "M ops/s",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 1331.91 K ops/s @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.1396600000000001,
          "unit": "M ops/s",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 1139.66 K ops/s @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.2294,
          "unit": "M ops/s",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 1229.40 K ops/s @ 5M"
        },
        {
          "library": "mmdbwriter",
          "value": 0.11866,
          "unit": "M ops/s",
          "dimension": "1K",
          "label": "mmdbwriter: 118.66 K ops/s @ 1K"
        },
        {
          "library": "mmdbwriter",
          "value": 0.16509000000000001,
          "unit": "M ops/s",
          "dimension": "10K",
          "label": "mmdbwriter: 165.09 K ops/s @ 10K"
        },
        {
          "library": "mmdbwriter",
          "value": 0.18153999999999998,
          "unit": "M ops/s",
          "dimension": "100K",
          "label": "mmdbwriter: 181.54 K ops/s @ 100K"
        },
        {
          "library": "mmdbwriter",
          "value": 0.14216,
          "unit": "M ops/s",
          "dimension": "500K",
          "label": "mmdbwriter: 142.16 K ops/s @ 500K"
        },
        {
          "library": "mmdbwriter",
          "value": 0.15608000000000002,
          "unit": "M ops/s",
          "dimension": "1M",
          "label": "mmdbwriter: 156.08 K ops/s @ 1M"
        },
        {
          "library": "mmdbwriter",
          "value": 0.18292,
          "unit": "M ops/s",
          "dimension": "1.5M",
          "label": "mmdbwriter: 182.92 K ops/s @ 1.5M"
        },
        {
          "library": "mmdbwriter",
          "value": 0.21195,
          "unit": "M ops/s",
          "dimension": "2M",
          "label": "mmdbwriter: 211.95 K ops/s @ 2M"
        },
        {
          "library": "mmdbwriter",
          "value": 0.38577,
          "unit": "M ops/s",
          "dimension": "5M",
          "label": "mmdbwriter: 385.77 K ops/s @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/writer-throughput.svg",
      "sha256": "86f012ebedb7e51705f1206d06d2871eee2d5739ce9467f019360e37f1f1b9d1"
    },
    {
      "id": "writer-build-time",
      "title": "Writer Total Time",
      "subtitle": "Total wall clock time for MMDB generation (lower is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 0.87,
          "unit": "s",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 0.87 s @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.2,
          "unit": "s",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 1.20 s @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.01,
          "unit": "s",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 1.01 s @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.17,
          "unit": "s",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 1.17 s @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.81,
          "unit": "s",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 1.81 s @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.13,
          "unit": "s",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 1.13 s @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1.75,
          "unit": "s",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 1.75 s @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 4.07,
          "unit": "s",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 4.07 s @ 5M"
        },
        {
          "library": "mmdbwriter",
          "value": 0.83,
          "unit": "s",
          "dimension": "1K",
          "label": "mmdbwriter: 0.83 s @ 1K"
        },
        {
          "library": "mmdbwriter",
          "value": 0.97,
          "unit": "s",
          "dimension": "10K",
          "label": "mmdbwriter: 0.97 s @ 10K"
        },
        {
          "library": "mmdbwriter",
          "value": 1.1,
          "unit": "s",
          "dimension": "100K",
          "label": "mmdbwriter: 1.10 s @ 100K"
        },
        {
          "library": "mmdbwriter",
          "value": 3.52,
          "unit": "s",
          "dimension": "500K",
          "label": "mmdbwriter: 3.52 s @ 500K"
        },
        {
          "library": "mmdbwriter",
          "value": 6.41,
          "unit": "s",
          "dimension": "1M",
          "label": "mmdbwriter: 6.41 s @ 1M"
        },
        {
          "library": "mmdbwriter",
          "value": 8.2,
          "unit": "s",
          "dimension": "1.5M",
          "label": "mmdbwriter: 8.20 s @ 1.5M"
        },
        {
          "library": "mmdbwriter",
          "value": 9.44,
          "unit": "s",
          "dimension": "2M",
          "label": "mmdbwriter: 9.44 s @ 2M"
        },
        {
          "library": "mmdbwriter",
          "value": 12.96,
          "unit": "s",
          "dimension": "5M",
          "label": "mmdbwriter: 12.96 s @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/writer-build-time.svg",
      "sha256": "d80df29dd1d85a2a9c69ff0691fb02fe0b04c8f504b3b30443d416b67b948037"
    },
    {
      "id": "writer-peak-rss",
      "title": "Writer Peak Memory Usage (RSS)",
      "subtitle": "Peak RSS during MMDB generation across sizes (lower is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 3.38,
          "unit": "MiB",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 3.38 MiB @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 8.6,
          "unit": "MiB",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 8.60 MiB @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 34.77,
          "unit": "MiB",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 34.77 MiB @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 118.86,
          "unit": "MiB",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 118.86 MiB @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 204.21,
          "unit": "MiB",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 204.21 MiB @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 281.86,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 281.86 MiB @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 352.46,
          "unit": "MiB",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 352.46 MiB @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 718.62,
          "unit": "MiB",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 718.62 MiB @ 5M"
        },
        {
          "library": "mmdbwriter",
          "value": 8.2,
          "unit": "MiB",
          "dimension": "1K",
          "label": "mmdbwriter: 8.20 MiB @ 1K"
        },
        {
          "library": "mmdbwriter",
          "value": 19.09,
          "unit": "MiB",
          "dimension": "10K",
          "label": "mmdbwriter: 19.09 MiB @ 10K"
        },
        {
          "library": "mmdbwriter",
          "value": 79.62,
          "unit": "MiB",
          "dimension": "100K",
          "label": "mmdbwriter: 79.62 MiB @ 100K"
        },
        {
          "library": "mmdbwriter",
          "value": 157.7,
          "unit": "MiB",
          "dimension": "500K",
          "label": "mmdbwriter: 157.70 MiB @ 500K"
        },
        {
          "library": "mmdbwriter",
          "value": 153.59,
          "unit": "MiB",
          "dimension": "1M",
          "label": "mmdbwriter: 153.59 MiB @ 1M"
        },
        {
          "library": "mmdbwriter",
          "value": 157.75,
          "unit": "MiB",
          "dimension": "1.5M",
          "label": "mmdbwriter: 157.75 MiB @ 1.5M"
        },
        {
          "library": "mmdbwriter",
          "value": 157.63,
          "unit": "MiB",
          "dimension": "2M",
          "label": "mmdbwriter: 157.63 MiB @ 2M"
        },
        {
          "library": "mmdbwriter",
          "value": 157.76,
          "unit": "MiB",
          "dimension": "5M",
          "label": "mmdbwriter: 157.76 MiB @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/writer-peak-rss.svg",
      "sha256": "49b0dd5ffc19276e50d6bfc29f4197aa05dec12edc4dee58f80d2281070a9fdf"
    },
    {
      "id": "writer-p99",
      "title": "Writer Insertion p99 Tail Latency",
      "subtitle": "p99 insertion latency (lower is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 1403.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "libmaxminddb-rs: 1403.00 ns @ 1K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1302.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "libmaxminddb-rs: 1302.00 ns @ 10K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 271.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "libmaxminddb-rs: 271.00 ns @ 100K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 841.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "libmaxminddb-rs: 841.00 ns @ 500K"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 751.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "libmaxminddb-rs: 751.00 ns @ 1M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 821.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "libmaxminddb-rs: 821.00 ns @ 1.5M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 891.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "libmaxminddb-rs: 891.00 ns @ 2M"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 1081.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "libmaxminddb-rs: 1081.00 ns @ 5M"
        },
        {
          "library": "mmdbwriter",
          "value": 6440.0,
          "unit": "ns",
          "dimension": "1K",
          "label": "mmdbwriter: 6440.00 ns @ 1K"
        },
        {
          "library": "mmdbwriter",
          "value": 21622.0,
          "unit": "ns",
          "dimension": "10K",
          "label": "mmdbwriter: 21622.00 ns @ 10K"
        },
        {
          "library": "mmdbwriter",
          "value": 37596.0,
          "unit": "ns",
          "dimension": "100K",
          "label": "mmdbwriter: 37596.00 ns @ 100K"
        },
        {
          "library": "mmdbwriter",
          "value": 74870.0,
          "unit": "ns",
          "dimension": "500K",
          "label": "mmdbwriter: 74870.00 ns @ 500K"
        },
        {
          "library": "mmdbwriter",
          "value": 85957.0,
          "unit": "ns",
          "dimension": "1M",
          "label": "mmdbwriter: 85957.00 ns @ 1M"
        },
        {
          "library": "mmdbwriter",
          "value": 84505.0,
          "unit": "ns",
          "dimension": "1.5M",
          "label": "mmdbwriter: 84505.00 ns @ 1.5M"
        },
        {
          "library": "mmdbwriter",
          "value": 81079.0,
          "unit": "ns",
          "dimension": "2M",
          "label": "mmdbwriter: 81079.00 ns @ 2M"
        },
        {
          "library": "mmdbwriter",
          "value": 48001.0,
          "unit": "ns",
          "dimension": "5M",
          "label": "mmdbwriter: 48001.00 ns @ 5M"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/writer-p99.svg",
      "sha256": "bf951ad46ebefc00f32345ccf4c434df66e99e30b84719173f9d2df65873791b"
    },
    {
      "id": "concurrent-throughput",
      "title": "Peak Concurrent Throughput \u2014 16 Threads",
      "subtitle": "IPv4 throughput by thread count, 1 to 16 threads (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 52.04,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "libmaxminddb-rs: 52.04 M ops/s @ 4T"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 52.14,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "libmaxminddb-rs: 52.14 M ops/s @ 8T"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 52.15,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "libmaxminddb-rs: 52.15 M ops/s @ 16T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 31.97,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "libmaxminddb (C): 31.97 M ops/s @ 4T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 32.32,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "libmaxminddb (C): 32.32 M ops/s @ 8T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 32.23,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "libmaxminddb (C): 32.23 M ops/s @ 16T"
        },
        {
          "library": "maxminddb-rust",
          "value": 30.89,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "maxminddb-rust: 30.89 M ops/s @ 4T"
        },
        {
          "library": "maxminddb-rust",
          "value": 30.83,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "maxminddb-rust: 30.83 M ops/s @ 8T"
        },
        {
          "library": "maxminddb-rust",
          "value": 30.69,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "maxminddb-rust: 30.69 M ops/s @ 16T"
        },
        {
          "library": "geoip2-rs",
          "value": 44.17,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "geoip2-rs: 44.17 M ops/s @ 4T"
        },
        {
          "library": "geoip2-rs",
          "value": 44.09,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "geoip2-rs: 44.09 M ops/s @ 8T"
        },
        {
          "library": "geoip2-rs",
          "value": 44.11,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "geoip2-rs: 44.11 M ops/s @ 16T"
        },
        {
          "library": "maxminddb-golang",
          "value": 21.08,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "maxminddb-golang: 21.08 M ops/s @ 4T"
        },
        {
          "library": "maxminddb-golang",
          "value": 20.82,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "maxminddb-golang: 20.82 M ops/s @ 8T"
        },
        {
          "library": "maxminddb-golang",
          "value": 20.63,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "maxminddb-golang: 20.63 M ops/s @ 16T"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/concurrent-throughput.svg",
      "sha256": "7804763658a85857e406a4a4a061b55e7e293f2bb828c02827403231c16ce71a"
    },
    {
      "id": "concurrent-throughput-ipv6",
      "title": "Peak Concurrent Throughput \u2014 16 Threads (IPv6)",
      "subtitle": "IPv6 throughput by thread count, 1 to 16 threads (higher is better)",
      "points": [
        {
          "library": "libmaxminddb-rs",
          "value": 103.56,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "libmaxminddb-rs: 103.56 M ops/s @ 4T"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 103.08,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "libmaxminddb-rs: 103.08 M ops/s @ 8T"
        },
        {
          "library": "libmaxminddb-rs",
          "value": 103.59,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "libmaxminddb-rs: 103.59 M ops/s @ 16T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 82.08,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "libmaxminddb (C): 82.08 M ops/s @ 4T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 82.04,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "libmaxminddb (C): 82.04 M ops/s @ 8T"
        },
        {
          "library": "libmaxminddb (C)",
          "value": 81.98,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "libmaxminddb (C): 81.98 M ops/s @ 16T"
        },
        {
          "library": "maxminddb-rust",
          "value": 54.29,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "maxminddb-rust: 54.29 M ops/s @ 4T"
        },
        {
          "library": "maxminddb-rust",
          "value": 54.39,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "maxminddb-rust: 54.39 M ops/s @ 8T"
        },
        {
          "library": "maxminddb-rust",
          "value": 54.42,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "maxminddb-rust: 54.42 M ops/s @ 16T"
        },
        {
          "library": "geoip2-rs",
          "value": 69.43,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "geoip2-rs: 69.43 M ops/s @ 4T"
        },
        {
          "library": "geoip2-rs",
          "value": 71.1,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "geoip2-rs: 71.10 M ops/s @ 8T"
        },
        {
          "library": "geoip2-rs",
          "value": 71.08,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "geoip2-rs: 71.08 M ops/s @ 16T"
        },
        {
          "library": "maxminddb-golang",
          "value": 36.89,
          "unit": "M ops/s",
          "dimension": "4T",
          "label": "maxminddb-golang: 36.89 M ops/s @ 4T"
        },
        {
          "library": "maxminddb-golang",
          "value": 36.68,
          "unit": "M ops/s",
          "dimension": "8T",
          "label": "maxminddb-golang: 36.68 M ops/s @ 8T"
        },
        {
          "library": "maxminddb-golang",
          "value": 36.62,
          "unit": "M ops/s",
          "dimension": "16T",
          "label": "maxminddb-golang: 36.62 M ops/s @ 16T"
        }
      ],
      "source": "https://github.com/0x00F6/libmaxminddb-rs/blob/d01ab79c3a2951b3d45e6b2bb168bf74c2a50037/benchmarks/charts/concurrent-throughput-ipv6.svg",
      "sha256": "27e1598ef7ca0585171ca96bc93e9c4358b2b38f51a0f4f87ae3bf144a3b39da"
    }
  ]
}
