Open-RJ Logo Open-RJ


Home page

Download Open-RJ

Samples application for your edification

Documentation for the Open-RJ API and mappings

What's been happening with Open-RJ?

Who's involved with Open-RJ?

Who's using Open-RJ?

Get in contact with the Open-RJ team


Page updated:

Download

Here you can find how to get and install Open-RJ

Download

Current Version: 1.5.1

The current version of Open-RJ is 1.5.1 located on the project's file releases page.

A version history is also available from the file releases page with corresponding changes files.

Requirements

  • The core library

    The core library is "pure" C, and requires no additional libraries, or platform-specific functionality, that will not be present with your chosen C compiler

  • The C++ mapping

    The C++ mapping consists of the openrj::cpp::Database, openrj::cpp::DatabaseException, openrj::cpp::Field, and openrj::cpp::Record classes, defined in the following headers:

        <OPENRJ_ROOT>/include/openrj/cpp/openrj.hpp
        <OPENRJ_ROOT>/include/openrj/cpp/database.hpp
        <OPENRJ_ROOT>/include/openrj/cpp/field.hpp
        <OPENRJ_ROOT>/include/openrj/cpp/record.hpp

    These headers rely on the C++ standard library - exceptions, algorithms and strings - and also rely on the STLSoft libraries, version 1.9.1 beta 6 or later.

  • The Ch mapping

    The Ch mapping provides embedding/scriptable access to the Open-RJ C-API. It is implemented in the libopenrjch.c and dllmain.c files (in the <OPENRJ_ROOT>/mappings/Ch/ directory). The makefile in that directory is compatible with several versions of the Visual C++ compiler, and could be adapted to build the Ch mapping for other compilers with ease.

  • The D mapping

    The D mapping consists of the org.openrj.Database, org.openrj.DatabaseException, org.openrj.Field, org.openrj.InvalidKeyException, and org.openrj.Record classes, defined in the <OPENRJ_ROOT>/mappings/D/org/openrj/openrj.d file.

  • The .NET mapping

    The .NET mapping consists of the OpenRJ.Database, OpenRJ.DatabaseException, OpenRJ.Field, and OpenRJ.Record classes, defined in the C++.NET files under the <OPENRJ_ROOT>/mappings/C++.NET directory.

    To build these files, you will require the Visual C++.NET compiler, or another compiler capable of making mixed-mode (Managed and Unmanaged) assemblies. You will also require the STLSoft libraries, version 1.9.1 beta 6 or later.

  • The Python mapping

    The Python mapping consists of the openrj.database, openrj.field, and openrj.record classes, defined in the <OPENRJ_ROOT>/mappings/Ruby/openrj_python.c (C source) file.

    To build this mapping you'll need to have Python 2.2 or later installed, and have the appropriate environment settings configured correctly.

  • The Ruby mapping

    The Ruby mapping consists of the OpenRJ::Database, OpenRJ::FieldNameError, OpenRJ::Field, and OpenRJ::Record classes, defined in the <OPENRJ_ROOT>/mappings/Ruby/openrj_ruby.c (C source) file.

    To build this mapping you'll need to have Ruby 1.8.1 or later installed, and have the appropriate environment settings configured correctly.

  • The STL mapping

    The STL mapping consists of the openrj::stl::Database, openrj::stl::DatabaseException, openrj::stl::Field, and openrj::stl::Record classes, defined in the following headers:

        <OPENRJ_ROOT>/include/openrj/stl/openrj.hpp
        <OPENRJ_ROOT>/include/openrj/stl/database.hpp
        <OPENRJ_ROOT>/include/openrj/stl/field.hpp
        <OPENRJ_ROOT>/include/openrj/stl/record.hpp

    These headers rely on the C++ standard library - exceptions, algorithms and strings - and also rely on the STLSoft libraries, version 1.9.1 beta 6 or later.

Installing

Please note that this is a library written by developers, for developers. Although we've done our best to ensure that everything is set up to be as automatic as possible, we also assume that you've a level of skill to help you out with any omissions/errors on our part.

The library is provided as a zip. All you need to do is unzip recursively, and then build with your compiler of choice. Since the base library is written in C, it should be straightforward to compile with any compiler; thus far, it's been compiled with Borland, CodeWarrior, Digital Mars, GCC, Intel and Visual C++. The makefiles provided also build the C, C++ and STL test programs.

To build the Ruby mapping, use the extconf.rb script in the <openrj-root>/Mappings/Ruby directory.

To build the D mapping, compile the <openrj-root>/Mappings/D/etc/c/openrj/openrj.d and <openrj-root>/Mappings/D/std/openrj.d files, and link with the version of the library built with the Digital Mars C/C++ compiler.

%% Pets
 
Name:    Rebel
Species: Dog
Breed:   German Shepherd
%%
 
Name:    Moet
Species: Dog
Breed:   Boxer
%%
 
Name:    Little Girl Cat
Species: Cat
%%
 
Name:    Pepper
Species: Dog
Breed:   Border Collie
%%
Valid XHTML 1.0! Website content and Open-RJ implementation © Greg Peet & Matthew Wilson SourceForge.net Logo