Designed as an SDK with HTTP REST API

Viinex is designed as an SDK. That is, every piece of functionality implemented in Viinex is available via programming interface, and the functionality is said to be implemented if and only if it is available programmatically.

The criterion for development of Viinex API was whether a feature can be used from web-based client, like a single-page application. We presumed that if a javascript client running in a browser could use a feature, then rich clients can used it, too.

Viinex programming interface is a set of HTTP calls, taking as input and producing as output either JSON documents of terse and simple structure, or the media data. Viinex sticks to REST approach to building the API. The remote calls to Viinex are stateless, i.e. the server maintains no state or context for a specific client.

Viinex does not require its clients to link against native libraries, use additional transport protocols (except HTTP) or data formats (except JSON). Its API is suitable for using not only from Javascript code running in a web browser, but can easily be used from Java, Objective C or Swift, PHP, node.js, C#, Python, and also from Delphi or C++. Viinex is a middleware, it can be used from both client- and server- sides for different use cases. For instance, an NVR can be built solely by means of server-side functionality provided by Viinex, – all the work for developing an NVR would be done on a frontend. On the other hand, a domain-oriented solution, like the ones for alarm monitoring, access control or PSIM, which necessarily have non-video-related server-side parts, can also easily integrate Viinex within the environment of the application server, to incorporate video management functionality.

Viinex is typically deployed as a service/daemon in the operating system, however there is an option for integrating software to control over the lifecycle of Viinex instance.

Here’s the link to Viinex’s HTTP REST API documentation.