Skip to content

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.