Need help with setup, performance tuning, or custom SMPP development? Talk to us →

Free & open source · SMPP 3.4 · Java 21

SMS infrastructure for modern Java.

smpp-core is the fastest open-source SMPP library on the JVM - Java 21 virtual threads, zero-copy Netty codecs, windowing and reconnect built in. Free under Apache-2.0, and the actively maintained successor to Cloudhopper.

Latest version on Maven Central CI build status Apache 2.0 license

SmppClient client = SmppClient.builder()
    .host("smsc.carrier.net").port(2775)
    .systemId("esme").password("secret")
    .bindType(SmppBindType.TRANSCEIVER)
    .build();

SmppClientSession session = client.connect();

// async submit with a CompletableFuture
session.submitSm(message)
    .thenAccept(resp -> log.info(resp.messageId()));
SmppServer server = SmppServer.builder()
    .port(2775)
    .systemId("smsc")
    .maxConnections(100)
    .handler(new MyServerHandler())
    .build();

server.start();

// virtual threads: every session gets its own,
// thousands of sessions, zero pool tuning
<!-- one dependency, on Maven Central -->
<dependency>
    <groupId>io.smppgateway</groupId>
    <artifactId>smpp-core</artifactId>
    <version>1.0.9</version>
</dependency>
1.5M+PDUs encoded per second
25,000messages/s over real TCP - 25× a tuned Cloudhopper
~1 KBmemory per session (virtual threads)
Free, foreverApache-2.0 - no paid tiers, no license keys

Start building

Everything ships documented - pick your entry point.

Built for production traffic

The reliability machinery lives in the library, not in your code.

Virtual threads

Thousands of concurrent sessions on Java 21 - around 1 KB each, no thread-pool tuning, ever.

Zero-copy codecs

PDUs encode directly into Netty buffers. Nothing is copied on the hot path.

Immutable PDUs

Records and sealed types make every message thread-safe by construction.

Windowing & reconnect

Request windows, automatic reconnect, and TLS handled for you - your code only sees acknowledged messages.

Metrics built in

Prometheus and Grafana wiring via Micrometer, one optional dependency away.

Kafka bridge

A production SMPP-to-Kafka service with an HTTP/2 API - Docker and Kubernetes ready.

Two projects, one stack

Use the library alone, or deploy the bridge alongside it.

Bind your first session in five minutes.

Free and open source under Apache-2.0 - add smpp-core from Maven Central and start moving messages.

Need setup help, tuning, or custom SMPP development? Talk to us.