Skip to content

vdt/asphalt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

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, tokio and aiogevent as event loop policy providers (though YMMV with the last two)
  • 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.

Project links

About

Asphalt application framework (core)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%