惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
腾讯CDC
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
D
Docker
V
V2EX
Last Week in AI
Last Week in AI
G
Google Developers Blog
IT之家
IT之家
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - dksingh1997/parlel: A verification layer for AI ...
Dheerajiitr · 2026-06-23 · via Hacker News: Show HN

250+ service emulators on local Docker — Stripe, Postgres, Slack, S3, OpenAI and more, speaking real wire protocols.

A verification layer for AI coding agents (and a "mock everything locally" tool for everyone else).

CI License: MIT Services


SERVICES="postgres,redis,stripe,openai,slack" docker compose up

That's it. Five real services are now listening on localhost — Postgres on 5432, Redis on 6379, Stripe on 4757, and so on. Point your app at them with unmodified real drivers and run your code. No accounts, no API keys, no cost, no side effects.

Why

Code that talks to databases, payment APIs, queues and SaaS needs testing. Today you either:

  • Mock everything — fast, but mocks lie and miss real bugs.
  • Use the real services — accurate, but slow, costs money, needs secrets, and has side effects (real charges, real emails).

Parlel is the third option: real wire protocols, in-memory, instant, free. The Postgres emulator speaks the actual Postgres protocol — psycopg/pg connect unmodified. The Stripe emulator speaks the real Stripe REST API — stripe-node works as-is. Your code is identical to production; only the endpoint changes.

This is especially useful for AI coding agents: an agent can spin up exactly the services its code touches, run it, assert, and tear down — all locally, all free, with zero risk to production.

Quick start

With Docker (recommended — collision-safe):

git clone https://github.com/dksingh1997/parlel && cd parlel
npm install   # one-time, for the launcher

# start just what you need
SERVICES="postgres,redis,stripe" npm run up

# or everything
SERVICES=all npm run up

npm run up publishes only the ports for the services you ask for, and if a port is already taken on your machine (a local Postgres on 5432, say) it remaps that one service to a free port and tells you which one:

parlel: 1 host port(s) were busy — remapped to free ports:
  • postgres: connect on localhost:15000 (container 5432)

Plain docker compose up also works if you'd rather — see docker-compose.yml.

With plain docker run:

docker build -t parlel .
docker run -p 5432:5432 -p 4757:4757 -e SERVICES="postgres,stripe" parlel

Without Docker (pure Node, no install needed):

SERVICES="postgres,redis,stripe" node src/launch.mjs

Then use the services with your normal drivers:

import psycopg, redis, stripe

db    = psycopg.connect("postgres://parlel:parlel@localhost:5432/parlel")
cache = redis.Redis(host="localhost", port=6379)
stripe.api_base = "http://localhost:4757"
stripe.api_key  = "sk_test_parlel"
import pg from "pg";
import Stripe from "stripe";

const db = new pg.Client("postgres://parlel:parlel@localhost:5432/parlel");
const stripe = new Stripe("sk_test_parlel", { host: "localhost", port: 4757, protocol: "http" });

See examples/ for a runnable end-to-end flow, and .env.example for every service's port + seeded test credentials.

What's included

250+ services across these categories:

Category Count Examples
AWS 59 S3, DynamoDB, SQS, SNS, Lambda, SES, Kinesis
Payments 20 Stripe, PayPal, Braintree, Adyen, Square, Razorpay
Dev / Source 19 GitHub, GitLab, Vercel, Sentry, CircleCI
AI 18 OpenAI, Anthropic, Cohere, Mistral, Groq
Email 15 SendGrid, Mailgun, Resend, Postmark, SES
Forms 10 Typeform, Jotform, Tally, Google Forms
Analytics 10 Mixpanel, Amplitude, PostHog, Segment
Productivity 10 Jira, Notion, Slack, Linear, Asana, Trello
Storage 10 S3, GCS, Azure Blob, Dropbox, Cloudinary
Social 10 X/Twitter, LinkedIn, Instagram, Reddit, Discord
CRM 10 Salesforce, HubSpot, Pipedrive, Freshsales
Auth 9 Auth0, Clerk, Cognito, Keycloak, Okta
Search 7 Elasticsearch, Meilisearch, Qdrant, Pinecone
Databases 6 Postgres, MySQL, MongoDB, Redis, Cassandra, Supabase
Azure / GCP / Google / Microsoft 20 Key Vault, Pub/Sub, BigQuery, Sheets, Teams
Messaging 4 Kafka, RabbitMQ, EventBridge
Marketing / SaaS / … 11 Mailchimp, Klaviyo, Shopify, Zendesk

TCP services (real wire protocols, reached with native drivers): Postgres, Redis, MySQL, MongoDB, Kafka, RabbitMQ, Cassandra. Everything else is HTTP.

Full service list

See .env.example for all 250 services with their ports and seeded credentials, and docs/ for a per-service API reference.

Real protocols, not stubs

Each emulator implements the actual wire protocol or REST contract, verified against the real client libraries. The test suite connects with pg, redis, mysql2, mongodb, kafkajs, amqplib, cassandra-driver, the AWS SDK, Stripe, and more — and asserts real round-trips.

npm install      # dev deps: the real driver libraries + vitest
npm test         # per-service fidelity tests
npm run probe    # boot a set and health-check every service

Configuration

  • SERVICES — comma-separated slugs, or all. Defaults to postgres,redis.
  • Ports — each service uses its canonical port (see .env.example).
  • Credentials — seeded test values (e.g. sk_test_parlel); any non-empty value is accepted, so you rarely need to change them.

Control plane

Alongside the emulators, Parlel runs an additive admin server on localhost:4700. Open it in a browser for a live dashboard — every running service, its connection string, the request log, a state inspector, and reset buttons, auto-refreshing every 2 seconds.

You can also drive it programmatically. List what's running, inspect state, and — most usefully — reset every service to a clean slate between tests without restarting anything:

beforeEach(() => fetch("http://127.0.0.1:4700/reset", { method: "POST" }));

GET /services returns each service's port and a ready-to-use connection string. You can also inspect the request log (GET /services/:slug/requests — "did my code call the API the way I think it did?") and preload fixtures (POST /services/:slug/seed, or a parlel.fixtures.json loaded on boot). See docs/control-plane.md. Disable with PARLEL_CONTROL=0.

How it works

your app / agent  ──▶  localhost:<port>  ──▶  in-memory emulator (real protocol)
   (unchanged)         (no bridge, no proxy)      (ephemeral, zero side effects)

Each emulator is dependency-free Node holding state in memory. State is ephemeral — restart for a clean slate. No data ever leaves your machine.

Everything runs locally, so the official client libraries connect directlypsycopg/pg to localhost:5432, kafkajs to localhost:9092, redis to localhost:6379, and so on. There is no proxy, no bridge, and no shim: the TCP services (Postgres, MySQL, MongoDB, Kafka, RabbitMQ, Cassandra, Redis) speak their real wire protocols straight to the port. (Kafka advertises localhost:9092 in its metadata, so kafkajs reconnects land on the emulator.)

Add a service

Adding an emulator is a manifest + a server.js + a test. See CONTRIBUTING.md — it takes about five minutes.

Roadmap

  • MCP server so agents can drive services by tool call.
  • Record / replay against real upstreams.
  • More services (open an issue to request one).

License

MIT.