Permalink
Browse files

First commit to Pizco: a Python library to communicate with remote ob…

…jects (using ZMQ)
  • Loading branch information...
0 parents commit c3e77208f90759884dd0e135aeb9b09c0abd22d4 @hgrecco committed Nov 12, 2012
Showing with 96 additions and 0 deletions.
  1. +11 −0 .gitignore
  2. +4 −0 AUTHORS
  3. +33 −0 LICENSE
  4. +6 −0 MANIFEST.in
  5. +42 −0 README
11 .gitignore
@@ -0,0 +1,11 @@
+*~
+__pycache__
+*egg-info*
+_past*
+*.pyc
+.DS_Store
+docs/_build/
+docs/drivers
+.idea
+_test*
+update_*
4 AUTHORS
@@ -0,0 +1,4 @@
+Authors
+-------
+
+Hernan E. Grecco <hernan.grecco@gmail.com>
33 LICENSE
@@ -0,0 +1,33 @@
+Copyright (c) 2012 by Hernan E. Grecco and contributors. See AUTHORS
+for more details.
+
+Some rights reserved.
+
+Redistribution and use in source and binary forms of the software as well
+as documentation, with or without modification, are permitted provided
+that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+* The names of the contributors may not be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
6 MANIFEST.in
@@ -0,0 +1,6 @@
+exclude *.pyc *~ .DS_Store
+
+include README
+include LICENSE
+
+recursive-include pizco *
42 README
@@ -0,0 +1,42 @@
+Pizco: a Python library to communicate with remote objects
+==========================================================
+
+Pizco is Python module/package that allows python objects to communicate.
+Objects can be exposed to other process in the same computer or over the network,
+allowing clear separation of concerns, resources and permissions.
+
+Pizco does not only support calling methods from remote objects but also
+accessing their attributes, dictionary attributes and properties. Most importantly,
+using a Qt-like (and Qt compatible!) signal and slot mechanism you can easily
+register notifications.
+
+As ZMQ is used as the transport layer, communication is fast and efficient,
+and different protocols are supported. It has a complete test coverage.
+It runs in Python 2.6, 2.7, 3.0, 3.1 and 3.2 and requires PyZMQ_.
+It is licensed under BSD.
+
+
+Design principles
+-----------------
+
+- Reusable Agent class as communicating object for both Proxy and Server.
+
+- ZMQ REP/REQ to handle sync access to objects.
+
+- ZMQ PUB/SUB for notifications and async operations.
+
+- PyQt-like signal and slots callbacks, compatible with PyQt.
+
+- *Soon*: Transparent handling of methods that return concurrent.Futures.
+
+- *Soon*: Asynchronous and batched operation on remote objects.
+
+- Small codebase: small and easy to maintain codebase with a flat hierarchy.
+ It is a single stand-alone module that can be installed as a package or added
+ side by side to your project.
+
+- Python 2 and 3: A single codebase that runs unchanged in Python 2.6+ and Python 3.0+.
+
+
+.. _PyZMQ: https://github.com/zeromq/pyzmq
+.. _Pyro: http://packages.python.org/Pyro4/

0 comments on commit c3e7720

Please sign in to comment.