Meshery and its components are written using the following languages and technologies.
- Meshery Server: Golang, gRPC
- Meshery Adapters: Golang, gRPC
- Meshery WASM Filters: Rust and C++
- Meshery UI: ReactJS, NextJS, BillboardJS
- Meshery Provider UI: ReactJS, NextJS
- Meshery Remote Providers: any - must adhere to gRPC interfaces
Meshery deploys as a set of containers. Meshery’s containers can be deployed to either Docker or Kubernetes.
Meshery’s REST API may be consumed by any number of clients. Clients need to present valid JWT token.
As a point of extension, Meshery supports two types of providers: Local and Remote.
This diagram outlines logical constructs within Meshery and their relationships.
Meshery uses the following list of network ports to interface with its various components:
|Meshery REST API||9081/tcp|
|Learn Layer5 Application||10011|
|Meshery Adapter for App Mesh||10005/tcp|
|Meshery Adapter for Consul||10002/tcp|
|Meshery Adapter for Citrix Service Mesh||10008/tcp|
|Meshery Adapter for Istio||10000/tcp|
|Meshery Adapter for Kuma||10007/tcp|
|Meshery Adapter for Linkerd||10001/tcp|
|Meshery Adapter for Traefik Mesh||10006/tcp|
|Meshery Adapter for NGINX Service Mesh||10010/tcp|
|Meshery Adapter for Network Service Mesh||10004/tcp|
|Meshery Adapter for Octarine||10003/tcp|
|Meshery Adapter for Open Service Mesh||10009/tcp|
|Meshery Adapter for Tanzu Service Mesh||10010/tcp|
See the Adapters section for more information on the function of an adapter.
Statefulness in Meshery components
Some components within Meshery’s architecture are concerned with persisting data while others are only concerned with a long-lived configuration, while others have no state at all.
|mesheryctl||stateless||command line interface that has a configuration file|
|Meshery Adapters||stateless||interface with service meshes on a transactional basis|
|Meshery Server||caches state||application cache is stored in user’s
|Meshery Providers||stateful||location of persistent user preferences, environment, tests and so on|