Installation#
All libvl artifacts are published to the public GitLab Package Registry of the vl project. No account, token or login is required — the registry is readable anonymously.
Every release publishes three artifacts from the same source tree and version:
| Language | Package type | Package name |
|---|---|---|
| C++ | generic (.tar.gz) |
vl |
| C# | NuGet | vl |
| Python | PyPI (wheel) | vl |
Throughout this page the registry base URL is:
https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages
The project path is URL-encoded (%2F for /), so no numeric project ID is needed.
Tip
The list of published versions is on the Packages & Registries page and on the release page.
C++ — generic package#
The C++ package is a tarball containing headers, shared libraries and the CMake package config. It is a multi-L4T build: the Argus and JPEG hardware-encoder plugins are shipped for every supported L4T version (r32.7.4 – r36.4) and the matching one is loaded at runtime.
VERSION=2.7.0
BASE=https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages
curl -LO ${BASE}/generic/vl/${VERSION}/vl-${VERSION}.tar.gz
sudo tar -xf vl-${VERSION}.tar.gz -C /usr/local
sudo ldconfig
Then consume it from CMake:
find_package(vl REQUIRED)
target_link_libraries(my_app PRIVATE vl::camera vl::encoding)
If you extracted somewhere other than /usr/local, point CMake at it with
-Dvl_DIR=<prefix>/lib/cmake/vl.
C# — NuGet#
Add the registry as a NuGet source, then reference the package as usual:
dotnet nuget add source \
"https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages/nuget/index.json" \
--name vl
dotnet add package vl
Alternatively, commit the source into a NuGet.config next to your solution:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="vl"
value="https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages/nuget/index.json" />
</packageSources>
</configuration>
The NuGet package bundles the native linux-arm64 runtime, so no separate C++ installation is
needed. It targets net6.0.
Python — pip#
The wheels are published to the registry's PyPI endpoint. Install with an extra index:
pip install vl \
--extra-index-url https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages/pypi/simple
To pin a version, use the usual specifier (vl==2.7.0). To make the index permanent, add it to
~/.pip/pip.conf:
[global]
extra-index-url = https://git.3dvisionlabs.com/api/v4/projects/3dvisionlabs%2Fsoftware%2Fecm%2Fvl/packages/pypi/simple
The wheel is built for linux_aarch64 and bundles the native libraries — a separate C++
installation is not required.
Note
Wheel versions are PEP 440-normalised, so a libvl version like 2.7.0-rc1 becomes 2.7.0rc1
on PyPI. Pre-releases need pip install --pre.