This repository has been archived by the owner. It is now read-only.
Efficient, scalable, and flexible Java implementation of the Short Messaging Peer to Peer Protocol (SMPP)
Switch branches/tags
Clone or download
Pull request Compare This branch is 143 commits behind twitter:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



The ch-smpp library is an extremely efficient, scalable, and flexible Java
implementation of the Short Messaging Peer to Peer Protocol (SMPP). This library
supports version 3.3, 3.4, and most of 5.0.  This library uses
Java non-blocking (NIO) sockets to support thousands of binds using minimal

The library has been tested and certified with hundreds of mobile operators
and suppliers around the world.  It's effective at being flexible with SMPP
specifications that aren't truly compliant.  The goal of the internal PDU
parser is to be unbreakable.


Binary builds are publicly available at the Cloudhopper Maven repo:

Source builds require a parent POM available in a project:


Joe Lauer


Copyright (C) 2011 Twitter, Inc.

This work is licensed under the Apache License, Version 2.0. See LICENSE for details.

What do we need help with?

There are always additional non-compliant SMPP implementations that exist out
in the wild.  Here are a few ways you can help us:

 1. Find nuances with other vendors, create unit tests, and implement a
 2. Additional demos and simulators
 3. More efficient method "expiring" unacknowledged requests (support is
    experimental for now).
 4. Additional utility classes for TLV types
 5. Additional real world DeliveryReceipt formats
 6. SSL support (see Netty, both client and server side, custom certs)

How does SMPP "windowing" effect performance?

With windowSize=2 took 36155 ms to process 1000 requests
With windowSize=10 took 10033 ms to process 1000 requests
With windowSize=100 took 3248 ms to process 1000 requests