Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Using SWIG to write CIM (CMPI) providers in any (scripting) language
Python Ruby C Objective-C Shell Makefile
Failed to load latest commit information.
doc Slide from the 2008 Management Developers Conference, describing
mof do not install test stuff
package bureaucracy
src Accept unicode strings from python functions
.gitignore Ignore tmp dir from rake test
ANNOUNCE Initial release announcement
CMakeLists.txt Don't package tmp dir
COPYING inserted a trunk directory
ChangeLog ChangeLog
README README: typo fixes, make Ruby versions explicit
TODO Update in prep for 0.4.0rc1 release
VERSION.cmake v1.0.1


Swig based CMPI bindings

This implements a CMPI-compliant provider interface for various languages 
via SWIG.

Currently supported languages

- Ruby
- Python
- Perl (beginning support)

cmpi-bindings is implemented as a single CMPI-compliant provider (per 
supported language) that serves as a "multiplexer" to the instrumented 
language-specific providers.

Using a python provider for class Py_Foo as an example, cmpi-bindings 
project provides a cmpi-compliant provider ( that 
will be registered with the cimom as the provider that handles Py_Foo 
requests.  When libpyCmpiProvider gets the request, it will then forward 
it on to the python module that instruments the Py_Foo class.

cmpi-bindings also provides supported-language-interfaces for the Provider 
Environment and BrokerCIMOMHandle, so that providers can make "up-calls" 
into the cimom.

For the stack discussion below, use the following 'type' abbreviations:
  Ruby:    rb
  Python:  py
  Perl:    pl

The cmpi-bindings provider interfaces under CMPI consist of the following 

<python:  pywbem/>
language-specific provider module

Build / Installation
The build scripts will only build the modules for which you have appropriate 
devel packages.  It will skip any others.

  cmake 2.4 or later
  CMPI header files, e.g. from sblim-cmpi-devel
  Python interface requires:  python-devel, pywbem-0.7.0
  Perl interface requires: perl
  Ruby interface requires: ruby ruby-devel (1.8, 1.9, or 2.0)

  From root of tarball's source tree, create a directory 'build' and move 
  (cd) into that directory
  'cmake ..'
  'sudo make install'

  You can pass various parameters to cmake to control the build, e.g.
  cmake -DCMAKE_INSTALL_PREFIX=/usr/local

  For each language, there is a test/<language> directory.
  Within that directory, there should be test providers, scripts that use 
  the test providers, and scripts to register the mofs and providers with 


The test/ subdir contains a couple of tests and some sample code. If
you have Ruby, rake, sblim-sfcb, sblim-sfcc and sfcc.gem installed,
test/rake gives you a more complete testsuite.

See test/rake/README for details.

Language-specific documentation

  Visit for QuickStart Guide,
  Tutorials, sample providers, etc.
Something went wrong with that request. Please try again.