AionixOne Python SDK - High-performance serverless platform client
Project description
AionixOne Python SDK
High-performance Python bindings for the AionixOne platform, powered by Rust.
Installation
pip install aionix-sdk-python
Quick Start
import aionix
import asyncio
async def main():
# Connect using environment variables or explicit config
client = aionix.connect()
# List functions
functions = await client.aionixfn.list_functions()
for fn in functions:
print(fn["name"], fn["runtime"])
# Descriptor-driven execution
action = aionix.Action.parse(
"trn:aionixfn:default:function/my-func:invoke"
)
result = await client.run(action, {"key": "value"})
print(result["kind"])
asyncio.run(main())
Configuration
The SDK reads configuration from environment variables:
AIONIX_API_BASE- API base URL (default:http://127.0.0.1:53000)AIONIX_TENANT- Default tenant (default:default)AIONIX_AUTH_TOKEN- Bearer token for authenticationAIONIX_API_KEY- API key for authentication (legacy)~/.aionix/credentials- Default profile (if present)
Or pass them explicitly:
client = aionix.connect(
api_base="http://localhost:53000",
tenant="production",
api_key="ak_xxx"
)
You can also specify a profile from ~/.aionix/credentials:
client = aionix.connect(profile="prod")
Services
| Service | Access | Description |
|---|---|---|
| Agent | client.agent |
OpenAI-compatible chat completions |
| AionixFn | client.aionixfn |
Function management and invocation |
| Auth | client.auth |
API keys and policies |
| CredVault | client.credvault |
Credential/secret management |
| Discovery | client.discovery |
Operation descriptor discovery |
| Igniter | client.igniter |
Trigger management |
| Ingress | client.ingress |
Ingress routing |
| OpenAct | client.openact |
Action connectors |
| Org | client.org |
Tenants and members |
| ParamStore | client.paramstore |
Configuration parameters |
| Stepflow | client.stepflow |
Workflow execution |
Dict-First Design
All APIs return standard Python dict and list, compatible with JSON output from the HTTP API and CLI:
fn = await client.aionixfn.get_function("my-func")
print(fn["trn"]) # Access via dict
print(fn["runtime"])
print(fn["status"])
# Serialize to JSON
import json
print(json.dumps(fn, indent=2))
Descriptor-driven Execution
All execution uses Action and descriptor-driven routing:
import aionix
client = aionix.connect()
action = aionix.Action.parse(
"trn:igniter:default:trigger/webhook/demo:health"
)
result = await client.run(action, {})
print(result["kind"]) # "execute" or "invoke"
Explicit Execute/Invoke
import aionix
import asyncio
async def main():
client = aionix.connect()
action = aionix.Action.parse(
"trn:aionixfn:default:function/demo:invoke"
)
result = await client.invoke(action, {"x": 1})
print(result["status"])
asyncio.run(main())
Discovery
List and search operation descriptors:
ops = await client.discovery.list()
for op in ops:
print(op["service"], op["resource_type"], op["operation"])
Error Handling
from aionix import NotFoundError, ValidationError
try:
fn = await client.aionixfn.get_function("nonexistent")
except NotFoundError as e:
print(f"Function not found: {e}")
except ValidationError as e:
print(f"Invalid request: {e}")
License
Apache-2.0
Development
Local dev install (editable build via maturin):
python -m pip install -U maturin
maturin develop
Build wheels + sdist:
maturin build --release
maturin sdist
Publish to PyPI (requires MATURIN_PYPI_TOKEN):
maturin publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aionix_sdk_python-0.1.2-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: aionix_sdk_python-0.1.2-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 8.1 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9446f34ad3a1de2a2348f11f54edfcd7418f2150cf0e2f5e21ed2fc4df427442
|
|
| MD5 |
9ff97c8aa1e90195241bc3c1ecade875
|
|
| BLAKE2b-256 |
3c77f3db073175fbf89bcea1f8d95cf7e578323135b503d5c227ecdabc132fc4
|
File details
Details for the file aionix_sdk_python-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: aionix_sdk_python-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca335afb54df3d3c660dbfc8c87e9129a32d630857f551f60986814866d3863c
|
|
| MD5 |
290d30e942c008056eeec6262f02c592
|
|
| BLAKE2b-256 |
672b1b4f144b4fc6090248d6c0552c9304b7d0a728d92137c2dc82129f6a8814
|
File details
Details for the file aionix_sdk_python-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: aionix_sdk_python-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.1 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
080796213b092364f7e021a7e693dcf74cc478668b4b6d01e4df1bc7c6c67c9c
|
|
| MD5 |
493b1c7499d22646fca7b23534e6d76c
|
|
| BLAKE2b-256 |
1b848bf01b92e07043062d20eeaf707974129ba54964143bdffc7b373c6df196
|