Cross-platform GUI gRPC debugging proxy like charles but design for gRPC

Last update: May 10, 2022

Mediator

Cross-platform GUI gRPC debugging proxy like charles but design for gRPC.

Build with Netty (proxy protocol), Compose Desktop (GUI), Sisyphus (Protobuf Runtime)

screenshot

Highlight features

Cross-platform, works on all your favorite platforms like Windows, macOS, Linux
Jetbrains Style GUI, easily integrating into your desktop
Host Rewrite, redirect the request to beta or test server without modifying client code
Server Reflection Support, parsing gRPC request and response message

Quick Start

Install

Download distribution from release page.

MSI for Windows, Dmg for macOS, Dmg(aarch64) for macOS(Apple Silicon), deb for Linux.

Run

Open the mediator app, the proxy server will listen 8888 port, the internal gRPC server will listen 9999 port by default.

Config Client

Config the proxy server in your client code.

Java Client (Android or Server)

Config proxy server by proxyDetector method of channel builder.

", 8888)) .build() } .build()">
ManagedChannelBuilder.forAddress("foo.barapis.com", 9000)
    .usePlaintext()
    .proxyDetector {
        HttpConnectProxiedSocketAddress.newBuilder()
            .setTargetAddress(it as InetSocketAddress)
            .setProxyAddress(InetSocketAddress("", 8888))
            .build()
    }
    .build()

Objective C Client (iOS)

Set proxy server to Environment variable in main function before your app code.

:8888", 1); // Setup code that might create autoreleased objects goes here. appDelegateClassName = NSStringFromClass([AppDelegate class]); } return UIApplicationMain(argc, argv, nil, appDelegateClassName); }">
int main(int argc, char * argv[]) {
    NSString * appDelegateClassName;
    @autoreleasepool {
        setenv("grpc_proxy", "http://:8888", 1);
        
        // Setup code that might create autoreleased objects goes here.
        appDelegateClassName = NSStringFromClass([AppDelegate class]);
    }
    return UIApplicationMain(argc, argv, nil, appDelegateClassName);
}

Go Client (Server)

Set proxy server to Environment variable.

:8888") // Your code here. }">
package main

import (
	"os"
)

func main() {
	os.Setenv("HTTP_PROXY", "http://:8888")

	// Your code here.
}

Resolve messages

Mediator support renders message as JSON tree if your server supports the Server Reflection.

If you need to append the metadata to Server Reflection Request, you should config your server rule in settings.

Open the Mediator Settings, create a server rule for your server.

Enter the Regex in Host pattern input field which to match your server.

Add the metadata in Reflection api metadata table.

Enable this rule by Enable server rule checkbox.

Server Rule

GitHub

https://github.com/ButterCam/Mediator
You might also like...

A cross-platform Java game Engine (Framework) , support JavaFX / Android / IOS / HTML5 / Linux / MAC / Windows

A cross-platform Java game Engine (Framework) , support JavaFX / Android / IOS / HTML5 / Linux / MAC / Windows

Loon Game Engine (Java Game Framework) EN / KR Free Game Resources Links Download Loon Game Engine Only Android-studio Template : androidstudio-templa

Apr 29, 2022

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Codename One - Cross Platform Native Apps with Java or Kotlin Codename One is a mobile first cross platform environment for Java and Kotlin developers

May 20, 2022

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Codename One - Cross Platform Native Apps with Java or Kotlin Codename One is a mobile first cross platform environment for Java and Kotlin developers

May 18, 2022

A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

Blue-Falcon A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has t

May 17, 2022

Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

cocos2d-x Win32 Others cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is

May 21, 2022

A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

Blue-Falcon A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has t

May 17, 2022

An easy-to-use, cross-platform measurement tool that pulls data out of CD pipelines and analysis the four key metrics for you.

An easy-to-use, cross-platform measurement tool that pulls data out of CD pipelines and analysis the four key metrics for you.

Maintained by SEA team, ThoughtWorks Inc. Read this in other languages: English, 简体中文 Table of Contents About the Project Usage How to Compute Contrib

May 21, 2022

Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.

Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.

Beagle Getting Started · Learn the Basics · Contribute Beagle is an open-source framework for cross-platform development using the concept of Server-D

May 7, 2022

Kotrlin Programming Language Cross-Platform Development which includes Android, iOS and Backend. Pretty much everwhere.

Kotrlin Programming Language Cross-Platform Development which includes Android, iOS and Backend. Pretty much everwhere.

Kotlin-Everywhere: Kotlin Programming Language Cross-Platform Development This is still a WIP but the idea is to create a tiny KOTLIN project that cou

Jan 14, 2022

💻 A cross-platform desktop application to identify libraries used inside an android application. Made possible by Compose Desktop ⚡

💻 A cross-platform desktop application to identify libraries used inside an android application. Made possible by Compose Desktop ⚡

🚀 stackzy A desktop app to analyse APK. Built using Compose desktop ✨ Demo Watch demo 📽️ Usage Show usage 💻 Install Platform Download Status Linux

May 13, 2022

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

Ionic Ionic is an open source app development toolkit for building modern, fast, top-quality cross-platform native and Progressive Web Apps from a sin

May 18, 2022

KMM RSS Reader: an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile.

KMM RSS Reader: an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile.

KMM RSS Reader This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you ca

May 15, 2022

Utility - The cross-platform native Kotlin command line tool template

Utility The cross-platform native Kotlin command line tool template. Usage Make

Jan 3, 2022

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's finances and keeps track of where, when and how the money goes.

May 15, 2022

CoolReader 3 - cross platform open source e-book reader

CoolReader 3 - cross platform open source e-book reader (c) Vadim Lopatin, 1998-2018 Development is moved to GitHub https://github.com/buggins/coo

Apr 29, 2022

Kotlin Multiplatform is an SDK for cross-platform mobile development, which enables teams to use the same business logic in both Android and iOS client applications.

Kotlin Multiplatform is an SDK for cross-platform mobile development, which enables teams to use the same business logic in both Android and iOS client applications.

Kotlin Multiplatform is an SDK for cross-platform mobile development, which enables teams to use the same business logic in both Android and iOS client applications.

Feb 11, 2022

OpenGLES - an embedded version of the OpenGL cross-platform API which is used to render 2D/3D texture

OpenGLES - an embedded version of the OpenGL cross-platform API which is used to render 2D/3D texture

OpenGLES is an embedded version of the OpenGL cross-platform API which is used to render 2D/3D texture. This sample code contains the implementation of shape rendering using OpenGLES.

Mar 14, 2022

This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Nov 7, 2021

The universal proxy toolchain for Android, written in Kotlin.

SagerNet for Android The universal proxy toolchain for Android, written in Kotlin.

May 23, 2022
Comments
  • 1. Does this support inspecting Firestore grpc calls?

    Sorry if this is the wrong place for this question but there isn't a "Discussions" tab on this repo.

    I'm trying to inspect firebase firestore traffic which uses grpc. Would this be possible using Mediator?

    Reviewed by ColtonIdle at 2021-11-10 02:45
  • 2. Cannot build due to moved theme

    I can't build the project because the theme isn't in any known repository:

    Could not resolve com.bybutter.compose:compose-jetbrains-theme:1.0.
    Required by:
        project :desktop
    

    Is it meant to be published to a public Maven repo?

    Reviewed by mikehearn at 2021-11-08 17:49
A gRPC Kotlin based server and client starter that builds with Gradle and runs on the JVM
A gRPC Kotlin based server and client starter that builds with Gradle and runs on the JVM

gRPC Kotlin starter Overview This directory contains a simple bar service written as a Kotlin gRPC example. You can find detailed instructions for bui

Jan 25, 2022
A Kotlin client for the gRPC based Bar Service
A Kotlin client for the gRPC based Bar Service

Bar Service Kotlin Client Overview This directory contains a simple bar service client written in Kotlin against generated models (protos) You can fin

Nov 18, 2021
gRPC-Kotlin/JVM - An RPC library and framework

gRPC-Kotlin/JVM - An RPC library and framework A Kotlin/JVM implementation of gRPC: A high performance, open source, general RPC framework that puts m

Nov 25, 2021
A product registration service using the Kotlin language and the Micronaut and Grpc framework
A product registration service using the Kotlin language and the Micronaut and Grpc framework

A product registration service using the Kotlin language and the Micronaut and Grpc framework

May 2, 2022
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device) - More Chucker than Chuck
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device) - More Chucker than Chuck

Chucker A fork of Chuck Getting Started Features Multi-Window Configure Redact-Header️ Decode-Body Migrating Snapshots FAQ Contributing Building Ackno

May 23, 2022
Annotation Processing Library. Generates proxy class on top of interface/abstract class, that allows to intercept calls. Also known as a design pattern: proxy, delegate, interceptor.
Annotation Processing Library. Generates proxy class on top of interface/abstract class, that allows to intercept calls. Also known as a design pattern: proxy, delegate, interceptor.

1. AutoProxy Annotation Processing Library. Generates proxy class on top of interface/abstract class, that allows to intercept calls. Also known as a

Mar 23, 2022
A library for debugging android databases and shared preferences - Make Debugging Great Again
A library for debugging android databases and shared preferences - Make Debugging Great Again

Android Debug Database Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications Android Deb

May 15, 2022
Using grpc-wiremock to mock responses in integrated tests of gRPC services
Using grpc-wiremock to mock responses in integrated tests of gRPC services

Utilizando grpc-wiremock para mockar respostas em testes integrados de serviços gRPC Este repositório possui um exemplo prático de como configurar e r

Oct 28, 2021
Jan 24, 2022
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

cocos2d-x Win32 Others cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is

May 21, 2022