Bertlet is a Python implementation of the BERT-RPC protocol written in Eventlet to make concurrency trivial.
Warning: Bertlet is in early stages of development. It does not yet cover the entire BERT-RPC protocol. See the Roadmap for more information.
Bertlet is at version 0.2. Current features supported:
- BERT-RPC cast and call
- SSL
- Middleware
- Gzip
- Preliminary informational berp support
- "Private" functions are not accessible; anything beginning with an underscore
- Protocol error handling
See Roadmap for upcoming features.
- Eventlet >= 0.9.5
- python-bert
Optional:
- ssl (either Python >= 2.6 or pyopenssl)
Bertlet is intended to be incredibly easy to use. BERT-RPC uses modules and
functions to expose functionality; Bertlet uses Python modules and functions
in the same manner. Creating a service with Bertlet is a two-step process:
create your modules and functions, then expose them with a Server
object.
Example module foo.py
:
def bar(): return "Hello, world!"
Example server runner:
#!/usr/bin/env python from bertlet import serve import foo serve(foo, certfile="mycert.crt", keyfile="mycert.key")
It's that simple. Your BERT-RPC service is now running on 2133 with the
foo
module exposing the bar
function. Note: this example also shows how
SSL is used.
This roadmap is subject to change. Just like your mom.
- 0.3
- Caching directives
- 0.4
- Streaming binary support
0.5 - ???
0.6 - ???
- 0.7
- Multiprocess support
- 0.8
- API stability for 1.0 release
- Full API documentation
- 0.9
- Full test coverage
- 1.0
- "Stable" release with full BERT-RPC 1.0 support
If you find a bug, please let me know! If you wish to contribute, please note that while I accept patches, it is possible that I will modify the changes before I integrate them into the trunk.
Bertlet is released under the MIT License. Please see the LICENSE file for the full text of the license.