Git Product home page Git Product logo

waspy's Introduction

WASPy

Waspy is the python framework for the WASP project. In other words its an asynchronous "transport-agnostic" web framework.

Language agnostic concepts

While this framework is for python, the patterns used in wasp are language agnostic. You should be able to call other services in different languages assuming they all follow the same patterns. This framework has a pluggable architecture for the transport layer, which allows you to switch from http to using a message bus, or vice-versa. You could even listen on both at the same time without having to modify your code at all.

Example

Look at examples/ folder for some quick examples, or there is an entire example repo at https://github.com/wasp/waspy-example

Alpha

This project is currently in alpha state. There are a lot of features missing.

Features for beta:

  • HTTP Transport
  • Routing
  • RabbitMQ transporty
  • Support middlewares
  • Client library (for calling other services)
  • HTTP client transport (with envvar service discovery)
  • RabbitMQ client transport
  • Test everything

note: all alpha features are complete, but I am still in the process of adding more robusts tests. Until that is done, waspy will remain in alpha and api's might change.

Wish List:

  • Transport classes for nats (nats.io)
  • Transport classes for kafka
  • Transport classes for gRPC
  • pattern for synchronous "worker-tier"
  • configuration package
  • auto-reloading when in debug mode
  • sentry integration
  • jwt handling

Features for GA (1.0):

  • High level "Falcon-like" api for writing RESTFUL endpoints even easier!
  • High level can be overridden by lower level for control/performance reasons
  • Stable/proven API

License

Apache-2.0

Installing

To install, just run pip install waspy

Developing

python setup.py develop

waspy's People

Contributors

alairock avatar azure-pipelines[bot] avatar colinchilds avatar jared-mackey avatar kweejee avatar nhumrich avatar oikeme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

waspy's Issues

Responses are very slow if they are over just a few MB

In HTTPClientConnection.get_response() the parser's feed_data has quite a bit of overhead. A response with just a few MB of data read at only 1064 bytes at a time can take several seconds. Increasing the chunk to something like 64k drastically improves the response time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.