Yesterday, Lyft released the initial OSS preview release of Envoy Mobile. This is an iOS and Android client network library that brings Lyft’s Envoy Proxy to mobile platforms.
— Matt Klein (@mattklein123) June 18, 2019
Envoy proxy was initially built at Lyft to solve the networking and observability issues inherent in large polyglot server-side microservice architectures. It soon gained large scale public appreciation and was used by major public cloud providers, end user companies, and infrastructure startups. Now, Envoy Proxy is brought to iOS and Android platforms, providing an API and abstraction for mobile application networking.
Envoy Mobile is currently in a very early stage of development. The initial release brings the following features:
- Ability to compile Envoy on both Android and iOS: Envoy Mobile uses an intelligent protobuf code generation and an abstract transport to help both iOS and Android provide similar interfaces and ergonomics for consuming APIs.
- Ability to run Envoy on a thread within an application, utilizing it effectively as an in-process proxy server.
- Swift/Obj-C/Kotlin demo applications that utilize exposed Swift/Obj-C/Kotlin “raw” APIs to interact with Envoy and make network calls,
Long term goals
Envoy Mobile provides support for Swift APIs for iOS and Kotlin APIs for Android initially, but depending on community interest they will consider adding support for additional languages in the future.
In the long term, they are also planning to include the gRPC Server Reflection Protocol into a streaming reflection service API. This API will allow both Envoy and Envoy Mobile to fetch generic protobuf definitions from a central IDL service, which can then be used to implement annotation driven networking via reflection.
They also plan to bring Envoy Mobile to xDS configuration to mobile clients, in the form of routing, authentication, failover, load balancing, and other policies driven by a global load balancing system.
Envoy Mobile can also add cross-platform functionality when using strongly typed IDL APIs. Some examples of annotations that are planned in their roadmap are Caching, Priority, Streaming, Marking an API as offline/deferred capable and more.
Envoy Mobile is getting loads of appreciation from developers with many happy they have open sourced its development.
A comment on Hacker news reads, “I really like how they’re releasing this as effectively the first working proof of concept and committing to developing the rest entirely in the open – it’s a great opportunity to see how a project of this scale plays out in real-time on GitHub.”
This is very interesting, having the full power of Envoy for mobile app. https://t.co/NvzEIfFpF7
— Omer Levi Hevroni (@omerlh) June 19, 2019
This was certainly unexpected, but fascinating. Envoy as a mobile library that pulls in xDS config as well… https://t.co/hjADx1a83y
— Dino A. Dai Zovi (@dinodaizovi) June 19, 2019
Currently the project is in a pre-release stage. Not all features are implemented, and it is not ready for production use. However, you can get started here. Also see the demo release and their roadmap where they plan to develop Envoy Mobile entirely in the open.