Skip to main content

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 authentication
  • AIONIX_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

aionix_sdk_python-0.1.2-cp39-abi3-win_amd64.whl (8.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

aionix_sdk_python-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

aionix_sdk_python-0.1.2-cp39-abi3-macosx_11_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file aionix_sdk_python-0.1.2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for aionix_sdk_python-0.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9446f34ad3a1de2a2348f11f54edfcd7418f2150cf0e2f5e21ed2fc4df427442
MD5 9ff97c8aa1e90195241bc3c1ecade875
BLAKE2b-256 3c77f3db073175fbf89bcea1f8d95cf7e578323135b503d5c227ecdabc132fc4

See more details on using hashes here.

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

File hashes

Hashes for aionix_sdk_python-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca335afb54df3d3c660dbfc8c87e9129a32d630857f551f60986814866d3863c
MD5 290d30e942c008056eeec6262f02c592
BLAKE2b-256 672b1b4f144b4fc6090248d6c0552c9304b7d0a728d92137c2dc82129f6a8814

See more details on using hashes here.

File details

Details for the file aionix_sdk_python-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aionix_sdk_python-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 080796213b092364f7e021a7e693dcf74cc478668b4b6d01e4df1bc7c6c67c9c
MD5 493b1c7499d22646fca7b23534e6d76c
BLAKE2b-256 1b848bf01b92e07043062d20eeaf707974129ba54964143bdffc7b373c6df196

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page