Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

MayeulC/PyUPush

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Minimal D-Bus UnifiedPush implementation in Python

Note: early WIP

Goals

  • Implement the D-Bus specification of UnifiedPush in a server and distributor
  • Implement sample users of that client and server
  • Provide an example implementation that can be studied and modified easily, both for future UnifiedPush implementers, and for application developers
  • Keep everything short (not terse) and readable, with enough comments
  • Provide a platform for benchmarking energy-efficiency of various push transports

Non-goals

  • Public deployments: this is mostly for testing
  • Absolute security, including against DDoS and malicious users
  • A useful example app
  • High-performance
  • Scalability to more than 10 users

Architecture

See UnifiedPush/ for the UnifiedPush-specific part ("distributor" in UnifiedPush parlance), and Application/ for the application part. There are readmes in both folders.

If you want to develop or refine a distributor, you will probably be more interested in the first, if you want to integrate UP in your application, have a look at the second. As an app developer, libraries exist to make implementing UnifiedPush easier, see this existing Go and C api.

Usage

  1. Run the server-side distributor from UnifiedPush/server.py
  2. Run the client-side distributor from UnifiedPush/server.py
  3. Run the client application from Application/UpConnector.py
  4. Observe the endpoint returned from the client application, and send it some data with curl -d 'some_data' 'http://endpoint'

Python scripts can be ran with python script.py

TODO

  • Bug fixes, especially lock-ups, exception handling
  • Support unregistration
  • Add more fully-fledged example that directly send a call to /push
  • Add client and server-side application
  • Rewrite API to better separate the logical parts, currently it relies a lot on globals and most classes calling into most others due to last-minute hacks
  • Separate the API into its own files? Not sure if that goes against the goals.
  • Usage documentation
  • Unit testing, probably one of the most useful features that could come out of this project

About

Minimal UnifiedPush example implementation for the D-Bus API

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.