High-performance CLI + FFI library for downloading BrightSDK archives. Written in Rust.
All commands require an SDK_API_KEY environment variable.
export SDK_API_KEY=<your-api-key>
$env:SDK_API_KEY = "<your-api-key>"
set SDK_API_KEY=<your-api-key>
Download the CLI binary for your platform via terminal:
curl -fsSL -o bright-sdk-downloader \
https://github.com/BrightSDK/bright-sdk-downloader-rs/releases/latest/download/bright-sdk-downloader-macos-arm64
chmod +x bright-sdk-downloader
curl -fsSL -o bright-sdk-downloader \
https://github.com/BrightSDK/bright-sdk-downloader-rs/releases/latest/download/bright-sdk-downloader-macos-x64
chmod +x bright-sdk-downloader
curl -fsSL -o bright-sdk-downloader \
https://github.com/BrightSDK/bright-sdk-downloader-rs/releases/latest/download/bright-sdk-downloader-linux-x64
chmod +x bright-sdk-downloader
Invoke-WebRequest -Uri "https://github.com/BrightSDK/bright-sdk-downloader-rs/releases/latest/download/bright-sdk-downloader-win-x64.exe" `
-OutFile "bright-sdk-downloader.exe"
Single source of truth for downloading BrightSDK archives across all integration tools — CLI, Gradle plugin, Unity plugin.
Ships as:
.dll / .so / .dylib, ~1.7 MB) — C FFI for C#, Java, etc.| Platform | CLI binary | Shared library |
|---|---|---|
| Linux x64 | bright-sdk-downloader-linux-x64 | libbright_sdk_download.so |
| macOS x64 | bright-sdk-downloader-macos-x64 | libbright_sdk_download.dylib |
| macOS ARM64 | bright-sdk-downloader-macos-arm64 | libbright_sdk_download.dylib |
| Windows x64 | bright-sdk-downloader-win-x64.exe | bright_sdk_download.dll |
export SDK_API_KEY=<your-api-key>
# Check CLI version
bright-sdk-downloader --version
# Resolve latest version + download URL
bright-sdk-downloader resolve -p android --pretty
# Download and extract SDK archive
bright-sdk-downloader fetch -p tizen -o ./libs
# List all available platforms
bright-sdk-downloader platforms --pretty
$env:SDK_API_KEY = "<your-api-key>"
.\bright-sdk-downloader.exe --version
.\bright-sdk-downloader.exe resolve -p android --pretty
.\bright-sdk-downloader.exe fetch -p tizen -o ./libs
.\bright-sdk-downloader.exe platforms --pretty
| Command | Description | Output |
|---|---|---|
resolve | Resolve version + download URL | {platform, version, url} |
fetch | Download and extract archive | {platform, version, url, output} |
platforms | List available platform keys | [{key, last_version}] |
The library exposes a C ABI for use from any language:
// Returns JSON string (caller must free with sdk_free_string), or NULL on error
char* sdk_resolve(const char* platform, const char* version);
char* sdk_fetch(const char* platform, const char* version, const char* output_dir);
char* sdk_list_platforms(void);
// Error handling
char* sdk_last_error(void);
// Memory management
void sdk_free_string(char* ptr);
[DllImport("bright_sdk_download", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr sdk_fetch(string platform, string version, string outputDir);
[DllImport("bright_sdk_download", CallingConvention = CallingConvention.Cdecl)]
static extern void sdk_free_string(IntPtr ptr);
public interface BrightSdkDownload extends Library {
BrightSdkDownload INSTANCE = Native.load("bright_sdk_download", BrightSdkDownload.class);
String sdk_resolve(String platform, String version);
String sdk_fetch(String platform, String version, String outputDir);
void sdk_free_string(Pointer ptr);
}
# Prerequisites: Rust toolchain (https://rustup.rs)
cargo build --release
# Run tests
cargo test
# Build for all platforms (requires Docker for cross-compilation)
./build-all.sh