All Projects → wasp → waspy

wasp / waspy

Licence: Apache-2.0 license
WASP framework for Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to waspy

Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+7788.37%)
Mutual labels:  micro-framework, http-client, http-server
Lithium
Easy to use C++17 HTTP Server with no compromise on performances. https://matt-42.github.io/lithium
Stars: ✭ 523 (+1116.28%)
Mutual labels:  http-client, http-server, webframework
Aiohttp
Asynchronous HTTP client/server framework for asyncio and Python
Stars: ✭ 11,972 (+27741.86%)
Mutual labels:  http-client, http-server, asyncio
Rebus.RabbitMq
🚌 RabbitMQ transport for Rebus
Stars: ✭ 51 (+18.6%)
Mutual labels:  rabbitmq, transport
Picoweb
Really minimal web application framework for the Pycopy project (minimalist Python dialect) and its "uasyncio" async framework
Stars: ✭ 361 (+739.53%)
Mutual labels:  micro-framework, asyncio
Jooby
The modular web framework for Java and Kotlin
Stars: ✭ 1,309 (+2944.19%)
Mutual labels:  micro-framework, webframework
Http Kit
http-kit is a minimalist, event-driven, high-performance Clojure HTTP server/client library with WebSocket and asynchronous support
Stars: ✭ 2,234 (+5095.35%)
Mutual labels:  http-client, http-server
Aio Pika
AMQP 0.9 client designed for asyncio and humans.
Stars: ✭ 611 (+1320.93%)
Mutual labels:  rabbitmq, asyncio
aiorabbit
An AsyncIO RabbitMQ client for Python 3
Stars: ✭ 18 (-58.14%)
Mutual labels:  rabbitmq, asyncio
Aiormq
Pure python AMQP 0.9.1 asynchronous client library
Stars: ✭ 112 (+160.47%)
Mutual labels:  rabbitmq, asyncio
go-sse
Fully featured, spec-compliant HTML5 server-sent events library
Stars: ✭ 165 (+283.72%)
Mutual labels:  http-client, http-server
Jodd
Jodd! Lightweight. Java. Zero dependencies. Use what you like.
Stars: ✭ 3,616 (+8309.3%)
Mutual labels:  micro-framework, http-client
EthernetWebServer SSL
Simple TLS/SSL Ethernet WebServer, HTTP Client and WebSocket Client library for for AVR, Portenta_H7, Teensy, SAM DUE, SAMD21, SAMD51, STM32F/L/H/G/WB/MP1, nRF52 and RASPBERRY_PI_PICO boards using Ethernet shields W5100, W5200, W5500, ENC28J60 or Teensy 4.1 NativeEthernet/QNEthernet. It now supports Ethernet TLS/SSL Client. The library supports …
Stars: ✭ 40 (-6.98%)
Mutual labels:  http-client, http-server
tomodachi
💻 Microservice library / framework using Python's asyncio event loop with full support for HTTP + WebSockets, AWS SNS+SQS, RabbitMQ / AMQP, middleware, etc. Extendable for GraphQL, protobuf, gRPC, among other technologies.
Stars: ✭ 170 (+295.35%)
Mutual labels:  rabbitmq, asyncio
aioamqp consumer
consumer/producer/rpc library built over aioamqp
Stars: ✭ 36 (-16.28%)
Mutual labels:  rabbitmq, asyncio
Donkey
Modern Clojure HTTP server and client built for ease of use and performance
Stars: ✭ 199 (+362.79%)
Mutual labels:  http-client, http-server
Hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications, APIs or queue consumers) that run inside a cloud platform.
Stars: ✭ 336 (+681.4%)
Mutual labels:  rabbitmq, micro-framework
http4ts
Server as a Function http toolkit for TypeScript & JavaScript
Stars: ✭ 30 (-30.23%)
Mutual labels:  http-client, http-server
Http4s
A minimal, idiomatic Scala interface for HTTP
Stars: ✭ 2,173 (+4953.49%)
Mutual labels:  http-client, http-server
Zio Http
A scala library to write Http apps.
Stars: ✭ 162 (+276.74%)
Mutual labels:  http-client, http-server

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].