CARVIEW |
- Home
- Services
-
Products
- Python
- · mxODBC – Python Database Interface
- · mxODBC Connect – Remote DB Interface
- · eGenix PyRun – Tiny Python Runtime
- · eGenix pyOpenSSL – SSL Interface
- · eGenix mx Base
- · mxDateTime – Date/Time Library
- · mxTextTools – Fast Text Parsing
- · mxBeeBase – BTree+ On-disk DB
- · mxTools – Fast Python Helpers
- · mxProxy – Python Object Proxy
- · mxURL – URL Library
- · mxUID – UID Library
- · mxStack – Stack Data Type
- · mxQueue – Queue Data Type
- · eGenix mx Experimental
- · mxNumber – High Precision Numbers
- · mxTidy – HTML Cleaner
- Plone / Zope
- · mxODBC Plone/Zope Database Adapter
- · mxODBC Database Adapter for Plone
- · eGenix ThreadLock Distribution
- Solutions
- Support
- Community
- Company
- Shop
mxProxy - Proxy-Access to Python Objects

Introduction
mxProxy™ is an extension package that provides a new type that is suitable to implement sandbox-like features without the need to use restricted execution environments.
Given that current Python versions no longer support Bastion or rexec as secure sand-box execution models, mxProxy fills an important gap. It also gives the programmer more control over how and to what extent access should be controlled or not.
Controlling Python Object Access
The type's main features are secure data encapsulation (the hidden objects are not accessible from Python since they are stored in internal C structures), customizable attribute lookup methods and a cleanup protocol that helps in breaking circular references prior to object deletion.
Weak Reference to Arbitrary Python Objects
mxProxy also offers another interesting new feature: universal weak references which help you work with circular references in a way that doesn't cause memory leakage in a Python system.
Unlike Python's own weak reference system, mxProxy does not require any support on the container or referenced objects for weak references to work.
Cleanup Protocol
Part of the usefulness of weak references is the ability to avoid circular references. mxProxy provides a special cleanup protocol to further enhance this benefit by allowing the objects in circular reference structures to cleanup and break the circular references by themselves - even if the used container types do not implement the Python garbage collection traversal mechanisms.
Features
- Low-level secure attribute and method access control.
- Light-weight design to reduce control overhead.
- Weak references to arbitrary Python objects.
- Alternative to the deprecated and unsafe Bastion and rexec Python modules.
- Fast, memory efficient.
- Stable, robust, portable and proven.
- Free to use and redistribute.
System Requirements
mxProxy is written in a very portable way and works on pretty much all platforms where you can compile Python.
We provide precompiled versions for all standard platforms, so all you need is a working Python installation. The package supports all Python versions since Python 2.1.
The only requirement for compiling the package from source is an ANSI C compiler. There are no third-party libraries needed.
License
mxProxy is provided as part of the eGenix.com mx Base Distribution. Please see the mx Base Distribution page for details regarding the license.
Documentation
The following documentation is available for mxProxy:
mxProxy User Manual and Reference Guide - HTML and PDF
The manual includes a discussion of the design principles behind mxProxy, its implementation, as well as a reference of the available programming interfaces.
The PDF file is also available as part of the installation and can be found in the mx/Proxy/Doc/
folder.
Download & Installation
mxProxy is provided as part of the eGenix.com mx Base Distribution. Please see the mx Base Distribution page for downloads and installation instructions.
References
mxProxy was used and written for the eGenix.com Application Server to protect access from user written objects/content to the base system.
History & Changes
Please see the change log for details regarding changes to the package between releases.