finds.dev← search

// the find

jookies/jasmin

★ 1,186 · Python · NOASSERTION · updated Apr 2026

Jasmin - Open source SMS gateway

Jasmin is a Python SMS gateway that speaks SMPP 3.4 (both client and server sides), exposes an HTTP API for sending, and uses RabbitMQ for queuing plus Redis for DLR tracking. It is aimed at telecom integrators and businesses that need to connect to carrier SMPP endpoints without paying for a commercial gateway.

The routing engine is genuinely flexible — you get regex filters, round-robin, failover, least-cost routing, and HLR lookup out of the box, which covers most real operator setups. The telnet-based jcli management interface lets you add/remove connectors and update routes without restarting anything, which matters when you are live with carriers. Built-in Prometheus metrics and pre-wired Grafana dashboards mean observability is not an afterthought. The test suite covers protocol-level SMPP behavior with a real simulator, not just unit mocks.

The whole stack is built on Twisted, which is old enough that most Python developers will need to relearn async patterns they have unlearned since asyncio became standard — debugging Twisted Deferred chains in 2026 is painful. Configuration is split across INI files, Redis, RabbitMQ, and the jcli session state, with no single source of truth; if the process crashes before config is persisted you can lose routing table changes silently. The REST API is a bolted-on Celery/Flask layer separate from the core Twisted daemon, meaning you are running two async runtimes side by side. Documentation is on ReadTheDocs but shows its age — many examples still assume Python 2 patterns and the Kubernetes manifests in the repo are bare pods with no resource limits or health checks.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →