Skip to main content

Client SDK for App Mesh

Project description

language.badge standard.badge unittest.badge docker.badge cockpit.badge Documentation Status Join the chat at https://gitter.im/app-mesh/community Coverity Scan Build Status OpenSSF Scorecard OpenSSF Baseline release.badge pypi.badge npm.badge cargo.badge

Advanced Application Management Platform

App Mesh is a secure platform for executing and managing user-defined process behaviors as managed services, providing control and integration via CLI and RESTful APIs.

App Mesh = systemd + scheduler + remote exec + API

1. Application Management

Manages user-defined processes in a way similar to systemd services or Docker-managed processes, while providing more advanced capabilities for control, security, and integration.

# List registered applications
$ appm ls
ID  NAME    OWNER  STATUS    HEALTH  PID  USER  MEMORY    %CPU  RETURN  AGE  DURATION  STARTS  COMMAND
1   pyexec  mesh   disabled  -       -    -     -         -     -       37s  -         0       "python3 ../../bin/py_exec.py"
2   ping    mesh   enabled   OK      747  root  5.9 MiB   0     -       37s  37s       1       "ping cloudflare.com"
3   pytask  mesh   enabled   OK      748  root  29.7 MiB  0     -       37s  37s       1       "python3 ../../bin/py_task.py"
# Add app
$ appm add -a myapp -c "ping www.baidu.com"
# View app
$ appm ls -a myapp -o
PING www.baidu.com (183.2.172.17) 56(84) bytes of data.
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=52 time=34.9 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=2 ttl=52 time=35.1 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=3 ttl=52 time=35.3 ms
# appm -h for more usage

Supports not only long-running services, but also scheduled and policy-driven executions, with remote control and execution status tracking.

2. Sending Tasks to a Running Application

Interact with a running application by sending tasks or data to it and receiving responses through the SDK.

from appmesh import AppMeshClient
client = AppMeshClient()
client.login("USER-NAME", "USER-PWD")

result_from_server = "0"
for i in range(10):
    task_data = f"print({result_from_server} + {i}, end='')"
    result_from_server = client.run_task(app_name="pytask", data=task_data)
    print(result_from_server)

๐Ÿš€ Features

Feature Description
App Management ๐Ÿงฉ App CURD with Full Remote Control โ€“ including cgroup, OS user, environment variables, Docker, stdin, and stdout โ€“ along with comprehensive monitoring (start counts, exit codes, error messages, health checks).
๐Ÿงฉ Fine-Grained Behavior Control & Scheduling โ€“ supports long- and short-running tasks, periodic jobs, cron schedules, custom timings, and robust error handling.
๐Ÿงฉ Multi-Tenancy โ€“ built-in user ownership model and access controls.
๐Ÿงฉ Unified Access Interface โ€“ interact via CLI, REST, SDK or WebGUI.
Computing ๐Ÿš€ High-performance in-memory computing
โ–ถ๏ธ Remote execution
๐Ÿ”„ Workflow Pipeline โ€” GitHub Actions-style CI/CD with DAG workflow
Security ๐Ÿ” Authentication: OAuth, 2FA, YAML-based storage (local or Consul for clustering)
๐Ÿ” Authorization: JWT, RBAC, multi-tenant isolation
๐Ÿ” Protection: SSL/TLS for TCP/HTTP/WebSocket, CSRF tokens, HMAC with PSK for non-token verification
Cloud Native ๐ŸŒฉ๏ธ Prometheus Exporter (built-in)
๐ŸŒฉ๏ธ Grafana SimpleJson datasource
๐ŸŒฉ๏ธ Grafana Loki
๐ŸŒฉ๏ธ Dockerfile
๐Ÿงฑ Consul micro-service cluster management
Extra Features Collect host/app resource usage
Remote shell command execution
File upload/download API
Hot-update support systemctl reload appmesh
Bash completion
Request Forwarding
๐ŸŒWeb GUI
Ecosystem LLM: Model Context Protocol (MCP), LLM Agent
AI: Claude Code Plugin
IoT: MQTT
Platform support Linux, macOS, Windows (X86, ARM)
SDK C++, Rust, Python, Golang, JavaScript, Java, Swagger OpenAPI Specification

๐Ÿ“ฆ Install

Refer to the Installation doc, this covers:

  • Docker Compose setup
  • Native installation
  • Cluster initialization

๐Ÿ”„ Workflow Pipeline

App Mesh includes a built-in Workflow Engine for defining CI/CD pipelines as YAML โ€” similar to GitHub Actions but running natively on App Mesh.

  • DAG scheduling โ€” jobs run in dependency order, independent jobs in parallel
  • 4 step types โ€” shell commands, existing Apps, Task API messages, sub-workflows
  • Error handling โ€” retry with exponential backoff, continue-on-error, finally cleanup blocks
  • Expressions โ€” ${{ inputs.env }}, ${{ steps.build.stdout }}, success(), failure(), always()
  • Remote execution โ€” target specific nodes by label or hostname
appm workflow add -f pipeline.yaml        # register
appm workflow run pipeline -e env=prod -f # run and follow output
appm workflow runs pipeline               # view history

๐Ÿ“„ LLM RAG Agent workflow โ€” LLM Agent

๐Ÿ“š Documentation

๐Ÿ†š Comparison

Standalone mode

Feature App Mesh Supervisor crontab
Accuracy Seconds Seconds Minutes
Language C++17 Python C
Web GUI โˆš โˆš
Command lines โˆš โˆš โˆš
SDK โˆš
Cron schedule expression โˆš โˆš
Manage docker app โˆš
Session login โˆš
Manage stdout/stderr โˆš โˆš
Health check โˆš
Authentication โˆš โˆš
Multi-tenant โˆš โˆš

Mind diagram

mind-diagram


๐Ÿ’ก Success


๐Ÿ”— Library dependency

Project details


Release history Release notifications | RSS feed

This version

2.2.8

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 Distribution

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

appmesh-2.2.8-py3-none-any.whl (56.5 kB view details)

Uploaded Python 3

File details

Details for the file appmesh-2.2.8-py3-none-any.whl.

File metadata

  • Download URL: appmesh-2.2.8-py3-none-any.whl
  • Upload date:
  • Size: 56.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for appmesh-2.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2b3b3b5f2992ca7160a05fd601272ab845757ef0bbf66a2e05906768e4e38118
MD5 633a5dd82970ee24119decff6100aead
BLAKE2b-256 4aff9c84c30f0120ed5d4e69a8057800f74a72bd7139a8ed21d122e27855014f

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