[![language.badge]][language.url] [![standard.badge]][standard.url] [![release.badge]][release.url] [![pypi.badge]][pypi.url] [![unittest.badge]][unittest.url] [![docker.badge]][docker.url] [![cockpit.badge]][cockpit.url]
[![Documentation Status](https://readthedocs.org/projects/app-mesh/badge/?version=latest)](https://app-mesh.readthedocs.io/en/latest/?badge=latest) [![Join the chat at https://gitter.im/app-mesh/community](https://badges.gitter.im/app-mesh/community.svg)](https://gitter.im/app-mesh/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<a href="https://scan.coverity.com/projects/laoshanxi-app-mesh">
<img alt="Coverity Scan Build Status"
src="https://img.shields.io/coverity/scan/21528.svg"/>
</a>
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh/badge)](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh)
# App Mesh: Advanced Application Management Platform
App Mesh is an open-source, multi-tenant application management platform designed for cloud-native environments. It efficiently manages, schedules, and monitors both microservices and traditional applications, offering a lightweight alternative to Kubernetes. App Mesh bridges the gap between simple process managers and complex container orchestration systems, making it ideal for organizations seeking to modernize their infrastructure without adopting full container-native complexity. Supporting both containerized and native applications, it provides a versatile solution for diverse enterprise needs.
<div align=center><img src="https://github.com/laoshanxi/picture/raw/master/appmesh/diagram.png" align=center /></div>
## Features
Feature | Description
---|---
Application management | 1. Manage independent applications with flexible process control (long/short running, periodic, cron schedule, custom timings, error handling) and comprehensive monitoring (start counts, return codes, error messages, health checks) for both native and Docker applications. <br> 2. Run applications on remote hosts using SDK/CLI with sync/async modes and fetch results to the client. <br> 3. Full control over application lifecycle (cgroup resource limitation, specific OS user for execution). <br> 4. Support interactive application start with specific input data via pipe and environment variables. <br> 5. Access all functionalities via [CLI](https://app-mesh.readthedocs.io/en/latest/CLI.html), [REST](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis), [SDK](https://github.com/laoshanxi/app-mesh/tree/main/src/sdk) and [WebGUI](https://github.com/laoshanxi/app-mesh-ui) interface.<br>
Security | ⚡️ [JWT authentication](https://app-mesh.readthedocs.io/en/latest/JWT.html) for CLI and REST interface <br> ⚡️ [LDAP support](https://app-mesh.readthedocs.io/en/latest/LDAP.html) <br> ⚡️ [Role based permission control](https://app-mesh.readthedocs.io/en/latest/USER_ROLE.html) <br> ⚡️ [Multi-factor authentication](https://app-mesh.readthedocs.io/en/latest/MFA.html)<br> SSL support (ECDH and secure ciphers) for REST http connection <br> Multi-tenant support
Cloud native | Schedule cloud-level applications to run on multiple hosts with resource size requests. <br> ⚡️ [Prometheus Exporter (build-in)](https://app-mesh.readthedocs.io/en/latest/PROMETHEUS.html) <br> ⚡️ [Grafana SimpleJson datasource](https://app-mesh.readthedocs.io/en/latest/GrafanaDataSource.html) <br> ⚡️ [Grafana Loki](https://app-mesh.readthedocs.io/en/latest/Loki.html) <br>⚡️ [Dockerfile](https://github.com/laoshanxi/app-mesh/blob/main/Dockerfile)
Micro service application | ⚡️ [Consul micro-service cluster management](https://app-mesh.readthedocs.io/en/latest/CONSUL.html)
Extra Features | Collect host/app resource usage <br> Remote shell command execution <br> File upload/download interface <br> Hot-update support `systemctl reload appmesh` <br> Bash completion <br> Reverse proxy <br> [Web GUI](https://github.com/laoshanxi/app-mesh-ui)
Platform support | X86_64 <br> ARM32 <br> ARM64
SDK | [Python](https://app-mesh.readthedocs.io/en/latest/api/appmesh_client.html) <br> [Golang](https://github.com/laoshanxi/app-mesh/blob/main/src/sdk/go/appmesh_client.go) <br> [JavaScript](https://www.npmjs.com/package/appmesh) <br> [Java](https://github.com/laoshanxi/app-mesh/packages/2227502) <br> [Swagger OpenAPI Specification](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/laoshanxi/app-mesh/main/src/daemon/rest/openapi.yaml)
## Getting started
Refer to the [Installation doc](https://app-mesh.readthedocs.io/en/latest/Install.html) to learn how to install App Mesh via Docker Compose or natively and set up an App Mesh cluster.
## Documentation
- [Read the Docs](https://app-mesh.readthedocs.io/)
- [REST API](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis)
- [Command lines](https://app-mesh.readthedocs.io/en/latest/CLI.html)
- [Security](https://app-mesh.readthedocs.io/en/latest/JWT.html)
## Comparison
### Standalone mode
| Feature | App Mesh | [Supervisor](http://supervisord.org/) | [crontab](https://crontab.guru/) |
| ------------------------ | -------- | ------------------------------------- | -------------------------------- |
| Accuracy | Seconds | Seconds | Minutes |
| Language | C++11 | Python | C |
| Web GUI | √ | √ |
| Command lines | √ | √ | √ |
| SDK | √ | |
| Cron schedule expression | √ | | √ |
| Manage daemon process | | | √ |
| Manage docker app | √ | |
| Start check (avoid leak) | √ | √ |
| Session login | | |
| Manage stdout/stderr | √ | √ |
| Health check | √ | |
| Rich control options | √ | |
| Authentication | √ | √ |
| Multi-tenant | √ | | √ |
### Cluster mode
| Feature | App Mesh | Kubernetes |
| ----------------- | -------- | ---------- |
| Easy deploy | √ |
| More features | | √ |
| Non-container app | √ |
| Service expose | √ | √ |
| Scheduler | √ | √ |
| Definition file | YAML | YAML |
| GUI | √ | √ |
| Virtual Network | | √ |
| Monitor tools | √ | √ |
---
### Mind diagram
![mind-diagram](https://github.com/laoshanxi/picture/raw/master/appmesh/mind.png)
---
## Success
- [Build a powerful monitor system with Grafana/Prometheus/Loki](https://app-mesh.readthedocs.io/en/latest/success/build_powerful_monitor_system_with_Grafana_Prometheus_Loki.html)
- [Customize application start behavior](https://app-mesh.readthedocs.io/en/latest/success/customize_app_startup_behavior.html)
- [Manage cluster-level microservice applications](https://app-mesh.readthedocs.io/en/latest/success/manage_cluster_level_microservice_applications.html)
- [Open service broker support local PV for Kubernetes](https://app-mesh.readthedocs.io/en/latest/success/open_service_broker_support_local_pv_for_K8S.html)
- [Promote native application to microservice application](https://app-mesh.readthedocs.io/en/latest/success/promote_native_app_to_microservice_app.html)
- [Secure REST file server](https://app-mesh.readthedocs.io/en/latest/success/secure_REST_file_server.html)
- [Standalone JWT server](https://app-mesh.readthedocs.io/en/latest/success/standalone_JWT_server.html)
- [Kubernetes run none-container applications](https://app-mesh.readthedocs.io/en/latest/success/kubernetes_run_native_application.html)
- [Remote execute](https://app-mesh.readthedocs.io/en/latest/success/remote_run_cli_and_python.html)
- [Python parallel run](https://app-mesh.readthedocs.io/en/latest/success/python_parallel_run.html)
- [Secure consul cluster](https://app-mesh.readthedocs.io/en/latest/success/secure_consul_cluster.html)
---
## Library dependency
- [MessagePack](https://msgpack.org/)
- [boostorg/boost](https://github.com/boostorg/boost)
- [ACE_TAO/ACE](https://github.com/DOCGroup/ACE_TAO)
- [curlpp](https://github.com/jpbarrette/curlpp)
- [Thalhammer/jwt-cpp](https://github.com/Thalhammer/jwt-cpp)
- [nlohmann/json](https://json.nlohmann.me)
- [yaml-cpp](https://github.com/jbeder/yaml-cpp)
- [nfpm](https://github.com/goreleaser/nfpm)
- [jupp0r/prometheus-cpp](https://github.com/jupp0r/prometheus-cpp)
- [zemasoft/wildcards](https://github.com/zemasoft/wildcards)
- [mariusbancila/croncpp](https://github.com/mariusbancila/croncpp)
- [log4cpp](http://log4cpp.sourceforge.net)
- [Crypto++](https://www.cryptopp.com)
- [ldap-cpp](https://github.com/AndreyBarmaley/ldap-cpp)
- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/liboath-api)
[language.url]: https://isocpp.org/
[language.badge]: https://img.shields.io/badge/language-C++-blue.svg
[standard.url]: https://en.wikipedia.org/wiki/C%2B%2B#Standardization
[standard.badge]: https://img.shields.io/badge/C%2B%2B-11%2F14%2F17-blue.svg
[release.url]: https://github.com/laoshanxi/app-mesh/releases
[release.badge]: https://img.shields.io/github/v/release/laoshanxi/app-mesh.svg
[docker.url]: https://hub.docker.com/repository/docker/laoshanxi/appmesh
[docker.badge]: https://img.shields.io/docker/pulls/laoshanxi/appmesh.svg
[cockpit.url]: https://github.com/laoshanxi/app-mesh-ui
[cockpit.badge]: https://img.shields.io/badge/Cockpit-app--mesh--ui-blue?logo=appveyor
[unittest.url]: https://github.com/catchorg/Catch2
[unittest.badge]: https://img.shields.io/badge/UnitTest-Catch2-blue?logo=appveyor
[pypi.badge]: https://img.shields.io/pypi/v/appmesh?label=PyPI%3Aappmesh
[pypi.url]: https://pypi.org/project/appmesh/
Raw data
{
"_id": null,
"home_page": "https://github.com/laoshanxi/app-mesh",
"name": "appmesh",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3",
"maintainer_email": null,
"keywords": "appmesh AppMesh app-mesh",
"author": "laoshanxi",
"author_email": "178029200@qq.com",
"download_url": null,
"platform": null,
"description": "\ufeff[![language.badge]][language.url] [![standard.badge]][standard.url] [![release.badge]][release.url] [![pypi.badge]][pypi.url] [![unittest.badge]][unittest.url] [![docker.badge]][docker.url] [![cockpit.badge]][cockpit.url]\n[![Documentation Status](https://readthedocs.org/projects/app-mesh/badge/?version=latest)](https://app-mesh.readthedocs.io/en/latest/?badge=latest) [![Join the chat at https://gitter.im/app-mesh/community](https://badges.gitter.im/app-mesh/community.svg)](https://gitter.im/app-mesh/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n<a href=\"https://scan.coverity.com/projects/laoshanxi-app-mesh\">\n <img alt=\"Coverity Scan Build Status\"\n src=\"https://img.shields.io/coverity/scan/21528.svg\"/>\n</a>\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh/badge)](https://api.securityscorecards.dev/projects/github.com/laoshanxi/app-mesh)\n\n# App Mesh: Advanced Application Management Platform\n\nApp Mesh is an open-source, multi-tenant application management platform designed for cloud-native environments. It efficiently manages, schedules, and monitors both microservices and traditional applications, offering a lightweight alternative to Kubernetes. App Mesh bridges the gap between simple process managers and complex container orchestration systems, making it ideal for organizations seeking to modernize their infrastructure without adopting full container-native complexity. Supporting both containerized and native applications, it provides a versatile solution for diverse enterprise needs.\n\n<div align=center><img src=\"https://github.com/laoshanxi/picture/raw/master/appmesh/diagram.png\" align=center /></div>\n\n## Features\n\nFeature | Description\n---|---\nApplication management | 1. Manage independent applications with flexible process control (long/short running, periodic, cron schedule, custom timings, error handling) and comprehensive monitoring (start counts, return codes, error messages, health checks) for both native and Docker applications. <br> 2. Run applications on remote hosts using SDK/CLI with sync/async modes and fetch results to the client. <br> 3. Full control over application lifecycle (cgroup resource limitation, specific OS user for execution). <br> 4. Support interactive application start with specific input data via pipe and environment variables. <br> 5. Access all functionalities via [CLI](https://app-mesh.readthedocs.io/en/latest/CLI.html), [REST](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis), [SDK](https://github.com/laoshanxi/app-mesh/tree/main/src/sdk) and [WebGUI](https://github.com/laoshanxi/app-mesh-ui) interface.<br>\nSecurity | \u26a1\ufe0f [JWT authentication](https://app-mesh.readthedocs.io/en/latest/JWT.html) for CLI and REST interface <br> \u26a1\ufe0f [LDAP support](https://app-mesh.readthedocs.io/en/latest/LDAP.html) <br> \u26a1\ufe0f [Role based permission control](https://app-mesh.readthedocs.io/en/latest/USER_ROLE.html) <br> \u26a1\ufe0f [Multi-factor authentication](https://app-mesh.readthedocs.io/en/latest/MFA.html)<br> SSL support (ECDH and secure ciphers) for REST http connection <br> Multi-tenant support\nCloud native | Schedule cloud-level applications to run on multiple hosts with resource size requests. <br> \u26a1\ufe0f [Prometheus Exporter (build-in)](https://app-mesh.readthedocs.io/en/latest/PROMETHEUS.html) <br> \u26a1\ufe0f [Grafana SimpleJson datasource](https://app-mesh.readthedocs.io/en/latest/GrafanaDataSource.html) <br> \u26a1\ufe0f [Grafana Loki](https://app-mesh.readthedocs.io/en/latest/Loki.html) <br>\u26a1\ufe0f [Dockerfile](https://github.com/laoshanxi/app-mesh/blob/main/Dockerfile)\nMicro service application | \u26a1\ufe0f [Consul micro-service cluster management](https://app-mesh.readthedocs.io/en/latest/CONSUL.html)\nExtra Features | Collect host/app resource usage <br> Remote shell command execution <br> File upload/download interface <br> Hot-update support `systemctl reload appmesh` <br> Bash completion <br> Reverse proxy <br> [Web GUI](https://github.com/laoshanxi/app-mesh-ui)\nPlatform support | X86_64 <br> ARM32 <br> ARM64\nSDK | [Python](https://app-mesh.readthedocs.io/en/latest/api/appmesh_client.html) <br> [Golang](https://github.com/laoshanxi/app-mesh/blob/main/src/sdk/go/appmesh_client.go) <br> [JavaScript](https://www.npmjs.com/package/appmesh) <br> [Java](https://github.com/laoshanxi/app-mesh/packages/2227502) <br> [Swagger OpenAPI Specification](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/laoshanxi/app-mesh/main/src/daemon/rest/openapi.yaml)\n\n## Getting started\n\nRefer to the [Installation doc](https://app-mesh.readthedocs.io/en/latest/Install.html) to learn how to install App Mesh via Docker Compose or natively and set up an App Mesh cluster.\n\n## Documentation\n\n- [Read the Docs](https://app-mesh.readthedocs.io/)\n- [REST API](https://app-mesh.readthedocs.io/en/latest/Development.html#rest-apis)\n- [Command lines](https://app-mesh.readthedocs.io/en/latest/CLI.html)\n- [Security](https://app-mesh.readthedocs.io/en/latest/JWT.html)\n\n## Comparison\n\n### Standalone mode\n\n| Feature | App Mesh | [Supervisor](http://supervisord.org/) | [crontab](https://crontab.guru/) |\n| ------------------------ | -------- | ------------------------------------- | -------------------------------- |\n| Accuracy | Seconds | Seconds | Minutes |\n| Language | C++11 | Python | C |\n| Web GUI | \u221a | \u221a |\n| Command lines | \u221a | \u221a | \u221a |\n| SDK | \u221a | |\n| Cron schedule expression | \u221a | | \u221a |\n| Manage daemon process | | | \u221a |\n| Manage docker app | \u221a | |\n| Start check (avoid leak) | \u221a | \u221a |\n| Session login | | |\n| Manage stdout/stderr | \u221a | \u221a |\n| Health check | \u221a | |\n| Rich control options | \u221a | |\n| Authentication | \u221a | \u221a |\n| Multi-tenant | \u221a | | \u221a |\n\n### Cluster mode\n\n| Feature | App Mesh | Kubernetes |\n| ----------------- | -------- | ---------- |\n| Easy deploy | \u221a |\n| More features | | \u221a |\n| Non-container app | \u221a |\n| Service expose | \u221a | \u221a |\n| Scheduler | \u221a | \u221a |\n| Definition file | YAML | YAML |\n| GUI | \u221a | \u221a |\n| Virtual Network | | \u221a |\n| Monitor tools | \u221a | \u221a |\n\n---\n\n### Mind diagram\n\n![mind-diagram](https://github.com/laoshanxi/picture/raw/master/appmesh/mind.png)\n\n---\n\n## Success\n\n- [Build a powerful monitor system with Grafana/Prometheus/Loki](https://app-mesh.readthedocs.io/en/latest/success/build_powerful_monitor_system_with_Grafana_Prometheus_Loki.html)\n- [Customize application start behavior](https://app-mesh.readthedocs.io/en/latest/success/customize_app_startup_behavior.html)\n- [Manage cluster-level microservice applications](https://app-mesh.readthedocs.io/en/latest/success/manage_cluster_level_microservice_applications.html)\n- [Open service broker support local PV for Kubernetes](https://app-mesh.readthedocs.io/en/latest/success/open_service_broker_support_local_pv_for_K8S.html)\n- [Promote native application to microservice application](https://app-mesh.readthedocs.io/en/latest/success/promote_native_app_to_microservice_app.html)\n- [Secure REST file server](https://app-mesh.readthedocs.io/en/latest/success/secure_REST_file_server.html)\n- [Standalone JWT server](https://app-mesh.readthedocs.io/en/latest/success/standalone_JWT_server.html)\n- [Kubernetes run none-container applications](https://app-mesh.readthedocs.io/en/latest/success/kubernetes_run_native_application.html)\n- [Remote execute](https://app-mesh.readthedocs.io/en/latest/success/remote_run_cli_and_python.html)\n- [Python parallel run](https://app-mesh.readthedocs.io/en/latest/success/python_parallel_run.html)\n- [Secure consul cluster](https://app-mesh.readthedocs.io/en/latest/success/secure_consul_cluster.html)\n\n---\n\n## Library dependency\n\n- [MessagePack](https://msgpack.org/)\n- [boostorg/boost](https://github.com/boostorg/boost)\n- [ACE_TAO/ACE](https://github.com/DOCGroup/ACE_TAO)\n- [curlpp](https://github.com/jpbarrette/curlpp)\n- [Thalhammer/jwt-cpp](https://github.com/Thalhammer/jwt-cpp)\n- [nlohmann/json](https://json.nlohmann.me)\n- [yaml-cpp](https://github.com/jbeder/yaml-cpp)\n- [nfpm](https://github.com/goreleaser/nfpm)\n- [jupp0r/prometheus-cpp](https://github.com/jupp0r/prometheus-cpp)\n- [zemasoft/wildcards](https://github.com/zemasoft/wildcards)\n- [mariusbancila/croncpp](https://github.com/mariusbancila/croncpp)\n- [log4cpp](http://log4cpp.sourceforge.net)\n- [Crypto++](https://www.cryptopp.com)\n- [ldap-cpp](https://github.com/AndreyBarmaley/ldap-cpp)\n- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/liboath-api)\n\n[language.url]: https://isocpp.org/\n[language.badge]: https://img.shields.io/badge/language-C++-blue.svg\n[standard.url]: https://en.wikipedia.org/wiki/C%2B%2B#Standardization\n[standard.badge]: https://img.shields.io/badge/C%2B%2B-11%2F14%2F17-blue.svg\n[release.url]: https://github.com/laoshanxi/app-mesh/releases\n[release.badge]: https://img.shields.io/github/v/release/laoshanxi/app-mesh.svg\n[docker.url]: https://hub.docker.com/repository/docker/laoshanxi/appmesh\n[docker.badge]: https://img.shields.io/docker/pulls/laoshanxi/appmesh.svg\n[cockpit.url]: https://github.com/laoshanxi/app-mesh-ui\n[cockpit.badge]: https://img.shields.io/badge/Cockpit-app--mesh--ui-blue?logo=appveyor\n[unittest.url]: https://github.com/catchorg/Catch2\n[unittest.badge]: https://img.shields.io/badge/UnitTest-Catch2-blue?logo=appveyor\n[pypi.badge]: https://img.shields.io/pypi/v/appmesh?label=PyPI%3Aappmesh\n[pypi.url]: https://pypi.org/project/appmesh/\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Client SDK for App Mesh",
"version": "1.3.8",
"project_urls": {
"Homepage": "https://github.com/laoshanxi/app-mesh"
},
"split_keywords": [
"appmesh",
"appmesh",
"app-mesh"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9b96f56d50644b51d4ed2994e0726ead7fa8a1ae58ebd1cfd51856cbe6697db3",
"md5": "2ba02b2c1ad254d6cd617b41741fe4f6",
"sha256": "c58b4fc2d7a39e10677515604d1b3c287d789943d334957f23583bf920f085bc"
},
"downloads": -1,
"filename": "appmesh-1.3.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2ba02b2c1ad254d6cd617b41741fe4f6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3",
"size": 26286,
"upload_time": "2024-11-15T04:13:13",
"upload_time_iso_8601": "2024-11-15T04:13:13.690018Z",
"url": "https://files.pythonhosted.org/packages/9b/96/f56d50644b51d4ed2994e0726ead7fa8a1ae58ebd1cfd51856cbe6697db3/appmesh-1.3.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-15 04:13:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "laoshanxi",
"github_project": "app-mesh",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "appmesh"
}