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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|