Metadata-Version: 2.0
Name: asphalt
Version: 3.0
Summary: A microframework for network oriented applications
Home-page: https://github.com/asphalt-framework/asphalt
Author: Alex Grönholm
Author-email: alex.gronholm@nextday.fi
License: Apache License 2.0
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Python: >= 3.5.2
Requires-Dist: async-generator (~=1.4)
Requires-Dist: asyncio-extras (~=1.3)
Requires-Dist: click (>=6.6)
Requires-Dist: ruamel.yaml (>=0.12)
Requires-Dist: setuptools
Requires-Dist: typeguard (~=2.0)
Provides-Extra: gevent
Requires-Dist: aiogevent (>=0.2); extra == 'gevent'
Provides-Extra: testing
Requires-Dist: pytest; extra == 'testing'
Requires-Dist: pytest-asyncio; extra == 'testing'
Requires-Dist: pytest-catchlog; extra == 'testing'
Requires-Dist: pytest-cov; extra == 'testing'
Provides-Extra: uvloop
Requires-Dist: uvloop (>=0.4.10); extra == 'uvloop'

.. image:: https://travis-ci.org/asphalt-framework/asphalt.svg?branch=master
  :target: https://travis-ci.org/asphalt-framework/asphalt
  :alt: Build Status
.. image:: https://coveralls.io/repos/github/asphalt-framework/asphalt/badge.svg?branch=master
  :target: https://coveralls.io/github/asphalt-framework/asphalt?branch=master
  :alt: Code Coverage

Asphalt is an asyncio_ based microframework for network oriented applications.

Its highlight features are:

* An ecosystem of components for integrating functionality from third party libraries and external
  services
* A configuration system where hard-coded defaults can be selectively overridden by external
  configuration
* A sophisticated signal system that lets you connect different services to create complex
  event-driven interactions
* Supports uvloop_ and aiogevent_ as event loop policy providers (though YMMV with the latter one)
* Elegant handling of blocking APIs through the use of thread pooling
* Run time type checking for development and testing to fail early when functions are called with
  incompatible arguments (can be disabled with **zero** overhead for production deployments!)
* `Type hints`_ and `semantic versioning`_ used throughout the core and all component libraries

Asphalt can be used to make any imaginable kind of networked application, ranging from trivial
command line tools to highly complex component hierarchies that start multiple network servers
and/or clients using different protocols.

What really sets Asphalt apart from other frameworks is its resource sharing system – the kind of
functionality usually only found in bulky application server software. Asphalt components publish
their services as *resources* in a shared *context*. Components can build on resources provided by
each other, making it possible to create components that offer highly sophisticated functionality
with relatively little effort.

.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _uvloop: https://github.com/MagicStack/uvloop
.. _aiogevent: https://bitbucket.org/haypo/aiogevent
.. _Type hints: https://www.python.org/dev/peps/pep-0484/
.. _semantic versioning: http://semver.org/

Project links
-------------

* `Component projects <https://github.com/asphalt-framework>`_
* `Documentation <http://asphalt.readthedocs.org/en/latest/>`_
* `Help and support <https://github.com/asphalt-framework/asphalt/wiki/Help-and-support>`_
* `Source code <https://github.com/asphalt-framework/asphalt>`_
* `Issue tracker <https://github.com/asphalt-framework/asphalt/issues>`_


