____   ___  _   _ _____       _        ____
|  _ \ / _ \| | | | ____|     | |      | __ )
| |_) | | | | |_| |  _|      | |      |  _ \
|  __/| |_| | _| | |___ _____| |____  | |_) |
|_|    \___/ \_| |____|_____|______| |____/

micro-service platform

19 stdlib-only Python micro-services with a unified gateway. Zero dependencies, zero API keys. Runs on a Raspberry Pi or a VPS.

python 3.12 stdlib only MIT licensed
services

what's included

Each service is a single Python file with no external dependencies. Start them individually or behind the gateway.

serviceportdescriptionendpoint
gateway8700unified API entry point — routes to all servicesPOST /api/{service}/{action}
sentiment8777analyzes text sentiment (positive/negative/neutral)POST /api/analyze
link-preview8765extracts title, description, image from URLsPOST /api/preview
keyword-extractor8766extracts keywords and key phrases from textPOST /api/extract
qr-generator8767generates QR codes as SVGPOST /api/qr
dns-lookup8768resolves domain names to IP addresses (A/AAAA)POST /api/resolve
color-palette8769generates harmonious color palettesPOST /api/generate
text-summary8770extracts key sentences from textPOST /api/summarize
url-shortener8771creates short codes for long URLsPOST /api/shorten
password-generator8772generates secure random passwordsPOST /api/generate
timestamp-converter8773converts Unix timestamps to human datesPOST /api/convert
json-formatter8774validates, formats, minifies JSONPOST /api/format
base64-tool8775encodes and decodes base64POST /api/encode
markdown-render8776converts Markdown to HTMLPOST /api/render
hash-gen8779generates hashes (md5, sha1, sha256, sha512, blake2b)POST /api/hash
uuid-gen8780generates UUID v4POST /api/generate
timestamp-conv8781converts between date formatsPOST /api/convert
barcode-gen8782generates barcodes (code39, code128, ean13)POST /api/generate
status-dashboard8790live health monitor for all servicesGET /api/status
api

try it

All services expose POST endpoints with JSON. The gateway routes for you — or call services directly.

# via gateway (recommended)
$ curl -X POST http://localhost:8700/api/sentiment/analyze \
  -H "Content-Type: application/json" \
  -d '{"text": "this is amazing"}'

$ curl -X POST http://localhost:8700/api/password/generate \
  -H "Content-Type: application/json" \
  -d '{"length": 20}'

# direct service call
$ curl -X POST http://localhost:8767/api/qr \
  -H "Content-Type: application/json" \
  -d '{"data": "https://pokelabs.org"}'

# every service has a health endpoint
$ curl http://localhost:8774/api/health
{"ok": true, "v": 1, "service": "json-formatter"}
stats

by the numbers

Zero npm installs. Zero API keys. Zero framework lock-in.

19
services
0
dependencies
1
language
uptime
architecture

how it works

Gateway on :8700 proxies requests to individual services. Each service is a single Python file you can run, modify, or replace independently.


  client
      ↓ POST /api/sentiment/analyze
  gateway (:8700)
      ↓ proxy to localhost:8777
  sentiment (:8777) → lexicon analysis → JSON response

  # each service is independent
  link-preview (:8765)    → fetch URL → extract metadata
  keyword-extractor (:8766) → TF scoring → ranked keywords
  dns-lookup (:8768)      → socket.getaddrinfo → IP list
  qr-generator (:8767)     → SVG generation → inline data
  color-palette (:8769)    → chroma math → hex/rgb list
  ...

  # add a service: create server.py → register in gateway → done