> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation and Environment

## System Requirements

The Python SDK and C SDK support these environments:

* Linux: Ubuntu 20.04 LTS (glibc 2.31) or later, on x86\_64 or arm64
* macOS: 11.0 or later, on a Mac with Apple silicon (arm64)

To deploy SDK applications in a Linux container, see [Docker Deployment](https://docs.wuji.tech/docs/en/wuji-sdk/latest/docker-deployment.md).

## Installation

Choose the SDK for your project language. You can install the Python SDK or the C SDK independently, and you don't need to install both.

### Install the Python SDK

The Python SDK provides prebuilt wheels for CPython 3.8–3.14.

On a Mac with Apple silicon, use an arm64 Python interpreter. Before installing the SDK, check the Python process architecture:

```bash theme={null}
python -c "import platform; print(platform.machine())"
```

On macOS, the output should be `arm64`. The wheel doesn't support Intel Macs or x86\_64 Python running under Rosetta.

Install `wuji-sdk` from PyPI. pip selects the wheel for your Python version, operating system, and architecture, so supported platforms use the same installation command:

```bash theme={null}
python -m pip install wuji-sdk
```

After installation, confirm that Python can import the SDK manager:

```bash theme={null}
python -c "from wuji_sdk import SdkManager"
```

If the command exits without an exception, the import succeeds.

### Install the C SDK

Compiling C programs requires gcc or clang. On macOS, install Xcode Command Line Tools first. The CMake example below also requires CMake.

Select the package for your target platform:

| Platform | C SDK Package |
| - | - |
| Linux x86\_64 (gnu) | `wuji-sdk-c-<version>-x86_64-linux-gnu.tar.gz` |
| Linux aarch64 (gnu) | `wuji-sdk-c-<version>-aarch64-linux-gnu.tar.gz` |
| Android aarch64 | `wuji-sdk-c-<version>-aarch64-android.tar.gz` |
| macOS Apple Silicon (arm64) | `wuji-sdk-c-<version>-aarch64-macos.tar.gz` |

Download the tarball for your target platform from [GitHub Releases](https://github.com/wuji-technology/wuji-sdk/releases). Linux packages contain `lib/libwuji_sdk_c.so`, and macOS packages contain `lib/libwuji_sdk_c.dylib`. Both include `include/wuji_sdk.h` and the license file.

Replace `<TAG>` with the Release tag you want to download, and choose your platform:

> [tab] Linux x86\_64
>
> ```bash theme={null}
> TAG="<TAG>"
> VER="${TAG#v}"
> SDK="wuji-sdk-c-${VER}-x86_64-linux-gnu"
> curl -fL "https://github.com/wuji-technology/wuji-sdk/releases/download/${TAG}/${SDK}.tar.gz" -o "${SDK}.tar.gz"
> tar xzf "${SDK}.tar.gz"
> SDK="$(pwd)/${SDK}"
> LIB="libwuji_sdk_c.so"
> ```

> [tab] macOS arm64
>
> ```bash theme={null}
> TAG="<TAG>"
> VER="${TAG#v}"
> SDK="wuji-sdk-c-${VER}-aarch64-macos"
> curl -fL "https://github.com/wuji-technology/wuji-sdk/releases/download/${TAG}/${SDK}.tar.gz" -o "${SDK}.tar.gz"
> tar xzf "${SDK}.tar.gz"
> SDK="$(pwd)/${SDK}"
> LIB="libwuji_sdk_c.dylib"
> ```

`${SDK}` is the extracted tarball root. Check that it contains the header and the shared library for your platform:

```bash theme={null}
test -f "${SDK}/include/wuji_sdk.h" && test -f "${SDK}/lib/${LIB}" && echo "C SDK is ready"
```

To build the examples, get the `examples/` directory from the [wuji-sdk repository](https://github.com/wuji-technology/wuji-sdk), and run these commands from the repository root:

```bash theme={null}
cmake -S examples/c/wuji_glove -B build \
  -DWUJI_SDK_INCLUDE_DIR="${SDK}/include" \
  -DWUJI_SDK_LIB="${SDK}/lib/${LIB}"
cmake --build build
```

For complete instructions on compiling, linking, and running C programs, see the [C SDK Reference](https://docs.wuji.tech/docs/en/wuji-sdk/latest/c-sdk-reference.md).

If macOS blocks `libwuji_sdk_c.dylib` when you first load it, confirm that the file comes from an official SDK release. In **System Settings › Privacy & Security › Security**, click **Open Anyway**, then run the program again.

## Device Discovery and Connection

After installing the SDK, configure the network, USB permissions, and connection for your device type. See [Device Discovery and Connection](https://docs.wuji.tech/docs/en/wuji-sdk/latest/device-connection.md). macOS needs neither Linux udev rules nor a `dialout` group.

After installing Wuji CLI, check device discovery with:

```bash theme={null}
wuji devices
wuji ping
```

## Interface Checklist

| Category | Interface or file | Purpose |
| - | - | - |
| Python package | `wuji_sdk` | Import the Python SDK |
| Python manager | `SdkManager` | Create an SDK manager instance |
| C header | `include/wuji_sdk.h` | Declare the C API |
| C shared library | Linux: `lib/libwuji_sdk_c.so`, macOS: `lib/libwuji_sdk_c.dylib` | Provide the C API implementation |
| CMake parameter | `WUJI_SDK_INCLUDE_DIR` | Set the C header directory |
| CMake parameter | `WUJI_SDK_LIB` | Set the C shared library path |
| Device discovery command | `wuji devices` | List discovered devices |
| Connectivity command | `wuji ping` | Check whether devices respond |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.