Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 5 committers (20.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.9%) to scientific vocabulary
Keywords
microservices
python-3
rpc
Last synced: 6 months ago
·
JSON representation
Repository
A transport-agnostic RPC framework for Python
Basic Info
Statistics
- Stars: 16
- Watchers: 13
- Forks: 2
- Open Issues: 8
- Releases: 0
Topics
microservices
python-3
rpc
Created over 9 years ago
· Last pushed about 8 years ago
Metadata Files
Readme
License
README.rst
=========
Venom RPC
=========
.. image:: https://img.shields.io/travis/biosustain/venom/master.svg?style=flat-square
:target: https://travis-ci.org/biosustain/venom
.. image:: https://img.shields.io/pypi/v/venom.svg?style=flat-square
:target: https://pypi.python.org/pypi/venom
.. image:: https://img.shields.io/pypi/l/venom.svg?style=flat-square
:target: https://pypi.python.org/pypi/venom
.. role:: strike
:class: strike
Venom is an upcoming RPC framework for Python. It features a simple, testable, composable service model and support for the Python 3 *typing* module. It will support unary (single message) and streaming communication patterns inspired by gRPC. The framework uses a simple message format for communications, compatible with the ProtocolBuffer format. The aim of Venom is to provide a low overhead framework for RPC service development specifically in Python while sticking to language agnostic communication standards.
So far, Venom RPC supports unary requests & replies that are defined as methods on services. The framework is designed to support different server implementations.
The currently available implementations are:
- Unary HTTP/1 protocol implementation using *aiohttp* (asynchronous) or *flask* (synchronous only)
- Unary gRPC protocol implementation using *grpcio*
Documentation currently is minimal! Head to the ``examples/`` folder for more details.
Installation
============
Venom RPC alpha requires Python 3.5. The final version will likely require Python 3.6.
To install Venom using 'pip' for use with *aiohttp*, run:
::
pip install venom[aiohttp]
To install Venom using 'pip' for use with *flask*, run:
::
pip install flask-venom
Road map
========
A list of major features required for the first release:
- Schema validation
- Documentation
- Message generation from request arguments
- OpenAPI (Swagger) schema service for API reflection
An unordered list of potential future features:
- CLI for generating sharable stubs from services
- Streaming WebSocket implementation with *aiohttp*
This would be the only solution that fully supports streaming and can be used in the browser today.
- Streaming gRPC (HTTP/2) implementation with e.g. *hyper-h2*
There's already an experimental gRPC implementation based on *grpcio*, but without true support for asynchronous calls because that is not supported by the official Python library.
- MsgPack serialization support
- ProtocolBuffer support
The problem with ProtocolBuffer as it stands now is that the official Python library for ProtocolBuffer is not very pythonic,
while ease of development in Python is the primary motivator behind Venom.
Streamed responses would use Python 3.6 asynchronous generators.
Owner
- Name: DTU Biosustain
- Login: biosustain
- Kind: organization
- Location: Denmark
- Website: http://www.biosustain.dtu.dk/english
- Repositories: 130
- Profile: https://github.com/biosustain
The Novo Nordisk Foundation Center for Biosustainability
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Lars Schöning | l****s@l****e | 141 |
| Svetlana Galkina | g****a@g****m | 4 |
| Ali Kaafarani | a****i@k****o | 3 |
| Pankaj Kumar Singh | p****3@g****m | 2 |
| Lars Schöning | l****s@b****k | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 18
- Total pull requests: 9
- Average time to close issues: about 1 month
- Average time to close pull requests: 17 days
- Total issue authors: 5
- Total pull request authors: 3
- Average comments per issue: 0.33
- Average comments per pull request: 1.0
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- lyschoening (12)
- pankaj28843 (3)
- hredestig (1)
- nochristrequired (1)
- sgalkina (1)
Pull Request Authors
- sgalkina (6)
- pankaj28843 (2)
- kvikshaug (1)
Top Labels
Issue Labels
bug (2)
help wanted (1)
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 79 last-month
- Total dependent packages: 0
- Total dependent repositories: 3
- Total versions: 8
- Total maintainers: 2
pypi.org: venom
Venom is an upcoming RPC framework for Python
- Homepage: https://github.com/biosustain/venom
- Documentation: https://venom.readthedocs.io/
- License: MIT
-
Latest release: 2.0.0
published about 8 years ago
Rankings
Dependent repos count: 9.0%
Dependent packages count: 10.0%
Stargazers count: 15.2%
Average: 15.3%
Forks count: 19.1%
Downloads: 22.9%
Maintainers (2)
Last synced:
6 months ago
Dependencies
setup.py
pypi
- aniso8601 >=1.2.1
- blinker >=1.4.0