Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

NavAbility/NavAbilitySDK.c

Open more actions menu

Repository files navigation

NavAbilitySDK.c

Copyright 2025, NavAbility Contributors. This repo is licensed according to Apache 2.0. See the LICENSE file.

CI

Introduction

Access NavAbility Accelerator features from C/C++. See related multi-language SDKs at Github.com/NavAbility/NavAbilitySDK.*.

Docs

Documentation for Python or Julia versions exist, work in progress to port Docs for Rust crates (25Q1).

First time setup (cloning)

This repo derives from upstream branches at NavAbility/NavAbilitySDK.rs:develop, which by convention is locally used in git as upstream. Regular origin for this repo holds the C-extras that take SDK.rs to have everything necessary for SDK.c. When cloning the repo, also do this:

git clone <this https/ssh>
cd NavAbilitySDK.c
git remote add upstream git@github.com:NavAbility/NavAbilitySDK.rs.git
git remote set-url --push upstream no-pushing
git config pull.rebase false

The last instruction protects the upstream SDK.rs from receiving C related code directly. Any work required on SDK.rs should be done there as normal.

Useful references on git stategy at https://stackoverflow.com/a/37104851, and stopping accidental upstream protection https://stackoverflow.com/a/7556269 (note change --push upstream). Also, simplify the git pull process via the config branch._ commands here https://stackoverflow.com/a/60724734.

Regular git pull

You should push and pull against SDK.c repo as normal

git pull
git pull origin   # the usual default

but merge upstream:develop changes into a local branch via

git checkout -b 25Q1/ff/somefix
git pull upstream develop
git push origin 25Q1/ff/somefix

Note the default branch is develop, but could also be stable such as pulling from upstream's release/v... branch.

System Dependencies

Get deps

make install-sys-deps # modifies system cargo crates

Compiling Shared Library

Build the shared library: Set required NVA_API_URL and NVA_API_TOKEN args/env variables and compile for either native or wasm:

make build-lib

Examples

See examples/Makefile.

Or run the test/test.c file with

make test-capi
Morty Proxy This is a proxified and sanitized view of the page, visit original site.