appecosystem-client
Client library for joining the appEcosystem service mesh: register a service, discover peers, and publish or subscribe to events.
Services find each other through a local registry (or mDNS), so an application can react to what other applications on the network are doing — a doorbell camera detecting motion, a SIEM raising an alert — without any of them being hard-wired to each other.
Install
pip install appecosystem-client
Requires Python 3.9+. Pulls in appecosystem-auth for request signing.
Optional extras:
pip install "appecosystem-client[mdns]" # zeroconf peer discovery
pip install "appecosystem-client[yaml]" # YAML config files
Join the ecosystem
import asyncio
from ecosystem_client import EcosystemClient
async def main():
eco = EcosystemClient(
service_name="my-app",
service_port=9000,
health_endpoint="/health",
)
await eco.start() # registers, then discovers peers
await eco.publish("myapp.ready", {"version": "1.0"})
peer = await eco.discover("openeye")
if peer:
print("found OpenEye at", peer)
await eco.stop() # deregisters cleanly
asyncio.run(main())
Receive events
Register a handler for an event pattern. * matches one namespace segment:
@eco.on("camera.*")
async def on_camera_event(event):
print(event["type"], event["data"])
Deliver incoming webhooks to eco.handle_webhook(payload) from whatever HTTP
route your framework exposes.
Event patterns
| Pattern | Matches |
|---|---|
camera.motion |
that exact type |
camera.* |
camera.motion, camera.offline |
* |
every event with a non-empty type |
An event with an empty type matches nothing — a malformed publish from one service cannot fan out to every subscriber.
License
MIT — see LICENSE.
Metadata
Release files for appecosystem-client 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| appecosystem_client-0.3.1.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| appecosystem_client-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.2 kB
Release files / appecosystem_client-0.3.1.tar.gz
| Download URL | appecosystem_client-0.3.1.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
671de6a79cac39e08b0d3d25bc3b51b05e724563cbc4b404ed5b752fd30e98a1
|
|
BLAKE2b-256 checksum How to use checksums |
301b7ae96f2b7d03b40c2368440c99da78eecbb00d5fb4483fa7589310d554cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / appecosystem_client-0.3.1-py3-none-any.whl
| Download URL | appecosystem_client-0.3.1-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f6c71bd1319ebe131cf560137b2459a34506f8ed6b95cb553a887e0969955e1f
|
|
BLAKE2b-256 checksum How to use checksums |
834881baf0c3b9c6eb1773289df9a8af014325d4ac0d62f8d25fd67f247f250d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency log