<commit_before>xwing
=====

.. image:: https://travis-ci.org/victorpoluceno/xwing.svg?branch=development
    :target: https://travis-ci.org/victorpoluceno/xwing

|

Python based *asyncio* Actor Framework.

**xwing** is a full featured actor framework inspired by Erlang's design. 

Features
--------

* Simple. Ships with a minimal for humans actor API.
* Fast. Message multiplexing implemented by routing connections, not data.
* Powerful. Based and inspired by the battle tested Erlang's actor design.
* High level. Allow developers to write applications without worrying too much about low level details.
* Interoperable. Can live along side other async libraries or applications.
* Rich. Packed with features that are essential to write distributed applications.

Sample
------

.. code-block:: python

    from xwing.mailbox import init_node, start_node, spawn

    async def pong(mailbox):
        message, pid = await mailbox.recv()
        await mailbox.send(pid, 'pong')

    async def ping(mailbox, pong_pid):
        await mailbox.send(pong_pid, 'ping', mailbox.pid)
        print(await mailbox.recv())

    init_node()
    pong_pid = spawn(pong)
    spawn(ping, pong_pid)
    start_node()

Status
------

Not released, under heavy development. **Unstable API**.

Requirements
------------

Xwing requires Python 3.5+.

Roadmap
-------

Features planned to *0.1* release:

* Task Scheduler with SMP support.
* Support for spawn of remote actors.
* Cookie based authentication support.
* Auto start of Xwing Hub on Node start.
* Hub not required for non distributed Node.
* Short cut communication for non distributed Node.
* Heartbeat for connection check and keepalive.
* Full tested and benchmarked uvloop support.

Development
----------

Bootstraping
~~~~~~~~~~~~

Create a venv and install development requirements::

  pyvenv env && source env/bin/activate
  pip install -e .

Testing
~~~~~~~

Run using `py.test`::

  py.test tests

Or if you want to see coverage report::

  pip install pytest-cov
  py.test --cov=xwing --cov-report html tests/
  open htmlcov/index.html

License
-------

The software is licensed under ISC license.
<commit_msg>docs: Update README to be more realistic<commit_after>xwing
=====

.. image:: https://travis-ci.org/victorpoluceno/xwing.svg?branch=development
    :target: https://travis-ci.org/victorpoluceno/xwing

|

Python based *asyncio* Actor Framework.

**xwing** is a full featured actor framework inspired by Erlang's design. 

Features
--------

* Simple. Ships with a minimal for humans actor API.
* Fast. Message multiplexing implemented by routing connections, not data.
* Powerful. Based and inspired by the battle tested Erlang's actor design.
* High level. Allow developers to write applications without worrying too much about low level details.
* Interoperable. Can live along side other async libraries or applications.
* Rich. Packed with features that are essential to write distributed applications.

Sample
------

.. code-block:: python

    from xwing.mailbox import init_node, start_node, spawn

    async def pong(mailbox):
        message, pid = await mailbox.recv()
        await mailbox.send(pid, 'pong')

    async def ping(mailbox, pong_pid):
        await mailbox.send(pong_pid, 'ping', mailbox.pid)
        print(await mailbox.recv())

    init_node()
    pong_pid = spawn(pong)
    spawn(ping, pong_pid)
    start_node()

Status
------

Not released, under heavy development. **Unstable API**.

Requirements
------------

Xwing requires Python 3.5+.

Roadmap
-------

Features planned to *0.1* release:

* Task Scheduler with SMP support.
* Auto start of Xwing Hub on Node start.
* Heartbeat for connection check and keepalive.
* Full tested and benchmarked uvloop support.

Development
----------

Bootstraping
~~~~~~~~~~~~

Create a venv and install development requirements::

  pyvenv env && source env/bin/activate
  pip install -e .

Testing
~~~~~~~

Run using `py.test`::

  py.test tests

Or if you want to see coverage report::

  pip install pytest-cov
  py.test --cov=xwing --cov-report html tests/
  open htmlcov/index.html

License
-------

The software is licensed under ISC license.

{'fraction_non_alphanumeric': 0.11456589332695527, 'fraction_numerical': 0.0019134178426213825, 'mean_word_length': 3.289230769230769, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2669929', 'n_tokens_mistral': 1250, 'n_tokens_neox': 1204, 'n_words': 458}