APIs🔗
Our APIs can be roughly divided in two categories: tool APIs that let you to add new functionality inside the runtime and client APIs that you use when accessing the runtime from outside.
Analysis apps are built by creating a processing graph that consist of tools. The VisionAppster platform comes with many built-in tools. If you need to add functionality into the vision app, you can create new ones using C, C++ or Python.
The VisionAppster Engine can be controlled using a HTTP-based RPC mechanism through its built-in web server. The apps running in the Engine can also publish APIs that can be accessed using the same mechanism. For most use cases, a dedicated client API is not needed; any HTTP library will do. The API tester automatically generates the required client-side code.
The VisionAppster SDK comes with a Bash client that works for many typical use cases. There is also a JavaScript client library that eases integration in Node.js and browser environments.
Data types🔗
One of the challenges in creating vision software is that each library uses its own data types. This leads to poor interoperability and a lot of boilerplate code for data type conversions. To solve this problem, the VisionAppster runtime defines common types that each tool must use in their interface.
The core data types are written in C for performance reasons and to ensure binary compatibility between different compilers. Wrappers for any programming language can be written on top of the core types. Currently, there are a built-in wrappers for Python and JavaScript. In addition, C++ wrappers are provided for OpenCV and Dlib data types.