apilab

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package apilab is APILab, a public developer API: API keys, per-key rate limits answered with 429 and Retry-After, cursor pagination, idempotent creates and webhook deliveries. It is the reference app for the public-apis pack.

Planted bottlenecks (see README.md), each switched off by a fix flag:

  • keys: an API key is found by hashing it and scanning every stored key hash, so each request costs more the more keys exist (fix "keys" uses a map).
  • limiter: rate limits are a sliding-window log behind one global lock that records refused attempts too, so a client that keeps hammering grows its own log and every other key waits on the lock (fix "limiter" uses sharded token buckets).
  • webhooks: one worker delivers every webhook, so deliveries queue behind each other when events arrive in bursts (fix "webhooks" runs 32 workers).

Index

Constants

View Source
const Keys = 20000

Seeded keys: sk_test_00001 to sk_test_20000 on the standard plan, and sk_test_free on the free plan.

Variables

This section is empty.

Functions

func New

func New(cfg labkit.Config) http.Handler

New returns APILab's handler.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL