VAPIX®
Why did we move VAPIX® Library to Axis Developer Documentation?
Let's start with explaining what VAPIX® is. VAPIX® is an open application programming interface (API) developed by Axis. It equips developers with a comprehensive set of protocols and commands to control various device functions and manage video streams. This includes capabilities such as PTZ (pan-tilt-zoom) control, event management, video analytics, and access to device settings.
The design of VAPIX® emphasizes flexibility and scalability, enabling developers to create custom applications that interact with Axis devices in diverse ways, tailored to their project requirements. VAPIX® is extensively utilized in security and surveillance systems to facilitate seamless integration between hardware and software components.
The evolution of VAPIX®
In 1996, Axis introduced the world’s first network camera, the AXIS "NetEye" 200, marking the beginning of the shift from analog to digital video surveillance. Recognizing the need for integrating network cameras with various software solutions, Axis developed VAPIX® as an open API.
VAPIX® was officially launched in the early 2000s. Over the years, it has evolved to support a wide range of functionalities, from basic video streaming to advanced camera controls, event management, and video analytics.
To put the creation of VAPIX® in context, consider some of the significant API technologies that are commonplace today:
- REST (Representational State Transfer) was academically defined in 2000 and became the standard shortly thereafter.
- OpenAPI (initially known as “Swagger”) was released in 2011.
- GraphQL and gRPC were introduced in 2015.
Being an early innovator offers the advantage of market leadership but also involves navigating uncharted territories. This was precisely the case for Axis with VAPIX®.
A unified interface for all products
VAPIX® serves as the common interface for all Axis products, regardless of whether the product is a network camera, a door station, or a network speaker. This uniformity presents a significant benefit, allowing developers to create software that interacts with any Axis device without the need to learn a new API for each product. Axis itself leverages VAPIX® when developing its products, a practice commonly referred to as "dogfooding".
Within Axis, it is often noted that VAPIX® has played a crucial role in the company's success in the security and surveillance market. VAPIX® not only provides a consistent interface for all products but has also demonstrated remarkable stability over the years. The strong coupling between VAPIX® and AXIS OS enables the use of the same version of AXIS OS across our product portfolio, ensuring consistency in APIs and versions throughout. This synergy allows VAPIX® to benefit from both the Long-Term Support (LTS) and Active tracks:
- The LTS track provides a stable API version with no changes, guaranteeing reliability and predictability.
- The Active track introduces new features and improvements, driving innovation and progress.
These dual tracks enable us to implement breaking changes in a controlled manner, minimizing disruptions and ensuring a seamless experience for our customers. Moreover, integrating new products into the same track facilitates code reusability for clients, contributing to the widespread adoption and popularity of VAPIX® in the market.
Compared to ONVIF, VAPIX® boasts a longer history, a broader range of features, and a faster evolution pace, solidifying its position as a leading choice among developers and users alike.
The extent of VAPIX®
The vast scope of VAPIX® warrants a dedicated chapter. As previously mentioned, VAPIX® is the universal interface for all Axis products. This consistency is a significant advantage, though it can also present certain challenges.
To gain a better understanding, let’s delve deeper. If we begin by counting the number of words in the VAPIX® documentation:
$ find . -type f -name '*.md' -print0 | # Find all Markdown files
xargs -0 cat | # Concatenate content
wc -w # Count words
> 626712
Approximately 630,000 words! That’s quite substantial. Is this estimate accurate? Having reviewed portions of the documentation, it is clear that it includes numerous headings and tables. In Markdown, these are represented by control characters such as #
, |
, and -
. Let’s remove these characters to refine our estimate:
$ find . -type f -name '*.md' -print0 | # Find all Markdown files
xargs -0 cat | # Concatenate content
sed 's/[#\|-]//g' | # Remove control characters
wc -w # Count words
> 537458
Approximately 540,000 words! This is still a considerable amount and appears to be a more reasonable estimate. But what does this number signify? To put it into perspective, consider the Oxford English Dictionary (OED), which details the meaning, history, and usage of about 620,000 word-forms. Essentially, the VAPIX® documentation contains only about 13% fewer words than word-forms in the OED.
For a final estimation, let’s consider how long it would take to read the entire VAPIX® documentation. Assuming an average reading speed of 230 words per minute, it would take nearly 39 hours to read through the entire documentation. Ain't nobody got time for that!
Why are we moving VAPIX® Library into Axis Developer Documentation?
The rationale behind the creation of Axis Developer Documentation is detailed in the Hello, World! blog post. In summary, our goal is to provide solution builders with a centralized repository of information necessary to develop their solutions. This is the primary reason we are integrating the VAPIX® Library into Axis Developer Documentation. Secondly, this update extends beyond a frontend change; we are undertaking a comprehensive redesign of our backend systems and documentation publishing workflow. These enhancements are set to improve efficiency, strengthen developer-user engagement, and enable more flexible and responsive management of API ownership.
As previously mentioned, VAPIX® has played an invaluable role in facilitating the integration of Axis devices into various systems. However, VAPIX® is just one of several integration points that Axis offers. Different scenarios necessitate different integration points, and while VAPIX® serves local network integration needs, there are other platforms for different requirements. For instance, if you wish to run your software directly on the device, you would use the AXIS Camera Application Platform (ACAP). It is worth noting that the ACAP developer documentation is not yet available on Axis Developer Documentation, but we plan to address this in the near future.
Consolidation is key. Our objective is to gather all essential resources into Axis Developer Documentation, thereby enhancing your development experience. Stay tuned as we continue to improve and expand our documentation to support your journey as a solution builder.