A framework for network services
Project description
An asynchronous event-based python framework designed for building TCP/IP services - run multiple socket, telnet, HTTP and websocket servers from a single async process.
Project site: https://radiac.net/projects/mara/
Source code: https://github.com/radiac/mara
Features
Asynchronous event-based framework
Supports multiple servers - text, telnet, HTTP and websockets included
Requires Python 3.10 or later, see installation.
See the Documentation for details of how Mara works.
Note: The last release to support Python 2 and 3.9 was version 0.6.3.
Quickstart
Install Mara with pip install mara, then write your service using event handlers.
A minimal Mara service looks something like this:
from mara import App, events from mara.servers.socket import SocketServer app = App() app.add_server(SocketServer(host="127.0.0.1", port=9000)) @app.on(events.Receive) async def echo(event: events.Receive): event.connection.write(event.data) app.run()
Save it as echo.py and run it:
$ python echo.py Server listening: Socket 127.0.0.1:9000
More examples
Take a look at the examples to see how to start writing more complex services:
Chat over a raw text TCP socket, or one with TLS encryption
Chat over a telnet server
Chat over a websocket server
Two servers, one process: chat between a websocket and a telnet server
Read the documentation for details of how Mara works.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mara-2.1.1.tar.gz
.
File metadata
- Download URL: mara-2.1.1.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5e11827190d1de622719bc86d02dcbfd4a7f6b0e242719d9316944aa6037da4 |
|
MD5 | 1d1c981da0420473d04ea14518720d3f |
|
BLAKE2b-256 | 770877465d0dc8dfa718b1dcd5cdfbdfd701c649814f7dbd9b3450a7258b9f11 |
File details
Details for the file mara-2.1.1-py3-none-any.whl
.
File metadata
- Download URL: mara-2.1.1-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22172de5ac0adc8651d52471bd976df21bd85f66bc4a4156f1355e8904270d2d |
|
MD5 | 120b7bcacedf2979fecadd1da3a9c14e |
|
BLAKE2b-256 | 5b0ed9739f9ef4bf70f1b8f28e331b6055e1ec3eba076e70fb398749e5b6d369 |