Skip to main content

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.

PyPI Documentation Status Tests Test coverage

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mara-2.1.0.tar.gz (16.8 kB view hashes)

Uploaded Source

Built Distribution

mara-2.1.0-py3-none-any.whl (22.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page