mxProxy - Proxy-Access to Python Objects

Created to provides efficient and secure Python object access and referencing controls.

Version: 3.2.6

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.