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
$ appc 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
$ appc add -a myapp -c "ping www.baidu.com"
# View app
$ appc 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
# appc -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, retry, conditions, and remote execution
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)
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
appc workflow add -f pipeline.yaml        # register
appc workflow run pipeline -e env=prod -f # run and follow output
appc workflow runs pipeline               # view history

๐Ÿ“„ LLM spec-driven โ€” development pipeline.

๐Ÿ“š 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

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.7-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: appmesh-2.2.7-py3-none-any.whl
  • Upload date:
  • Size: 51.6 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 77127c7e6c7ca86492ca085c34374711f928d4b3a087a3cd9ca6437136de1ace
MD5 bdc12cb14b50d7cb45330193ea6067d2
BLAKE2b-256 ef60f63026bbc0720ab305fb2911ee7fc12f74f5505a0b2a6a824e5ae2139e9b

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