Skip to content
jumpinjackie edited this page Aug 22, 2014 · 2 revisions

About

fdo-swig is a set of SWIG-generated wrappers to the FDO API

Motivation

The FDO API is written in C++ with the following bindings available with their own usability issues:

  • .net (mixed assembly, making it Windows only)
  • Python (very un-pythonic interface, not maintained)

The fdo-swig project was born with the aim to produce better quality bindings to the FDO API and to make it more accessible to other languages.

Eventually, we hope to produce usable bindings in the following languages:

  • Any language targeting the .net CLR (C#, VB.net, etc)
  • Any language targeting the JVM (Java, Scala, Groovy, etc)
  • PHP
  • Python
  • JavaScript (for node.js)

Advantages over existing bindings

.net

  • Our .net binding is pure C# with P/Invoke as opposed to a mixed assembly for the FDO .net API. This presents the ability for our .net binding to be used in Mono where it is not possible with the current FDO .net API
  • The FDO .net API must be manually maintained to keep in lock-step with new C++ API additions/changes. As our .net binding is driven by SWIG, we don't have this maintenance burden. We can rapidly iterate in response to changes in the C++ API.
  • Several parts of the FDO API are not exposed in .net (eg. Expression Engine). This will not be the case for our .net binding.
Clone this wiki locally