The Nimble application framework
Nimble is a fast and lightweight service-based framework for implementing video analytics pipelines targeted for CPU, GPU, FPGA, and SOC platforms. As illustrated below, Nimble sits on top of the Arka Runtime, which manages deep learning inferencing on the targeted platforms and enables seamless integration of The Megh Platform into existing decode, analytics, and visualization services. Nimble supports REST and WebSocket APIs to access these services and receive event notifications.
These APIs enable open integration, a pillar of Open Analytics, with the processing of data imported into and exported from The Megh platform.
What is a REST API?
API is short for “Application Programming Interface,” a set of rules and formats that let programs talk to each other, exposing data and functionality across a network.
REST stands for “Representational State Transfer.” This is an architectural pattern that describes how distributed systems can expose a consistent interface. REST directly builds upon HTTP’s method-based transaction model. JSON is usually used as the payload format for state representation.
A REST API is the most commonly used kind of API for providing access to web services. Resources managed by a web service may be retrieved, modified, and/or deleted through APIs by communicating with the appropriate URL endpoints.
What is a WebSocket API?
WebSocket is a protocol built upon HTTP to enable bidirectional communication between a web service and user application.
A WebSocket API often complements a REST API, enabling real-time streaming of data and providing event notifications when resources change on the web service.
Why does Nimble need an API?
Nimble’s REST API enables users to configure and query video analytics workloads executing within Nimble. Nimble’s WebSocket API enables users to subscribe to real-time video streams with analytics metadata as well as configuration and performance events. Behind this API is a software layer that routes data, arbitrates resources, and executes deep learning and analytics functions to enable enriched business insights at world-class speed.
How can I use Nimble’s API?
Most programming languages have built-in or third-party library support for interacting with REST APIs:
WebSockets also has support in most high-level languages: