All Projects → johnsonandjohnson → Guppy-iOS

johnsonandjohnson / Guppy-iOS

Licence: Apache-2.0 license
iOS pod about a curious fish named Guppy

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Guppy-iOS

Netfox
A lightweight, one line setup, iOS / OSX network debugging library! 🦊
Stars: ✭ 3,188 (+7490.48%)
Mutual labels:  network-monitoring, urlsession
d4-core
D4 core software (server and sample sensor client)
Stars: ✭ 40 (-4.76%)
Mutual labels:  network-monitoring
Go Ping
A simple ping library using ICMP echo requests.
Stars: ✭ 158 (+276.19%)
Mutual labels:  network-monitoring
Sniff Probes
Plug-and-play bash script for sniffing 802.11 probes requests 👃
Stars: ✭ 200 (+376.19%)
Mutual labels:  network-monitoring
Zxrequestblock
基于NSURLProtocol一句话实现iOS应用底层所有网络请求拦截(含网页ajax请求拦截【不支持WKWebView】)、一句话实现防抓包(使Thor,Charles,Burp等代理抓包方式全部失效,且即使开启了代理,也不影响App内部的正常请求)。包含http-dns解决方法,有效防止DNS劫持。用于分析http,https请求等
Stars: ✭ 160 (+280.95%)
Mutual labels:  network-monitoring
Oknetworkmonitor
A network monitor for OkHttp.
Stars: ✭ 204 (+385.71%)
Mutual labels:  network-monitoring
Sharp
An anti-ARP-spoofing application software that use active and passive scanning methods to detect and remove any ARP-spoofer from the network.
Stars: ✭ 150 (+257.14%)
Mutual labels:  network-monitoring
zeek-docs
Documentation for Zeek
Stars: ✭ 41 (-2.38%)
Mutual labels:  network-monitoring
sharppcap
Official repository - Fully managed, cross platform (Windows, Mac, Linux) .NET library for capturing packets
Stars: ✭ 1,054 (+2409.52%)
Mutual labels:  network-monitoring
Ivre
Network recon framework, published by @cea-sec & @ANSSI-FR. Build your own, self-hosted and fully-controlled alternatives to Shodan / ZoomEye / Censys and GreyNoise, run your Passive DNS service, collect and analyse network intelligence from your sensors, and much more!
Stars: ✭ 2,331 (+5450%)
Mutual labels:  network-monitoring
Marmot
Marmot workflow execution engine
Stars: ✭ 174 (+314.29%)
Mutual labels:  network-monitoring
Suricata
Suricata git repository maintained by the OISF
Stars: ✭ 2,274 (+5314.29%)
Mutual labels:  network-monitoring
Sbtuitesttunnel
Enable network mocks and more in UI Tests
Stars: ✭ 215 (+411.9%)
Mutual labels:  network-monitoring
React Native Network Logger
An HTTP network request monitor for React Native with in-app interface for iOS and Android with no native code
Stars: ✭ 161 (+283.33%)
Mutual labels:  network-monitoring
NetTool
macOS 状态栏小工具实时显示网速. macOS menubar tool to monitor network speed.
Stars: ✭ 74 (+76.19%)
Mutual labels:  network-monitoring
Upribox
Usable Privacy Box
Stars: ✭ 153 (+264.29%)
Mutual labels:  network-monitoring
Minestat
📈 A Minecraft server status checker
Stars: ✭ 168 (+300%)
Mutual labels:  network-monitoring
Luci Wrtbwmon
Bandwidth tracker for OpenWRT that uses wrtbwmon
Stars: ✭ 201 (+378.57%)
Mutual labels:  network-monitoring
dstp
🧪 Run common networking tests against any site.
Stars: ✭ 919 (+2088.1%)
Mutual labels:  network-monitoring
unpoller
Application: Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus
Stars: ✭ 1,613 (+3740.48%)
Mutual labels:  network-monitoring

Guppy

Platform Swift Version CocoaPods Carthage compatible codecov License

Do you want to know what's tedious? Debugging network requests and responses if you don't have the right tools. Guppy is a logging tool focused on HTTP requests that can be easily plugged into any iOS application. Guppy will intercept and log each network request sent from the app. You can access any Guppy log and share it with the rest of your team effortlessly.

Usage

While in the simulator you can use: ^ + ⌘ + z to bring up Guppy or shake your phone.

Routes

You can dig deep into the details of your network logs and share them with your team or yourself.

Details

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

URLSession

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        Guppy.registerURLProtocol()
        
        return true
    }
}

URLSession with Custom Protocols

class Session: URLSession {
    
    init() {
        let configuration = URLSessionConfiguration.default
        
        configuration.urlCache = nil
        
        // Protocols are evaluated in reverse order
        // If GuppyURLProtocol is not the last protocol it is not guaranteed to be executed
        configuration.protocolClasses = [MyCustomProtocol, GuppyURLProtocol.self]
        
        super.init(configuration: configuration)
    }
}

Alamofire

class SessionManager: Alamofire.SessionManager {

    init() {
        let configuration = URLSessionConfiguration.default

        configuration.urlCache = nil
        configuration.protocolClasses = [GuppyURLProtocol.self]
        
        super.init(configuration: configuration)
    }
}

Requirements

  • Xcode 12.0+
  • iOS 13.0+

Installation

Guppy is best used in non-production environments. By default, installing the Guppy framework will automatically make it available when the user shakes their device. To avoid this do any combination of the following:

  • If you are using multiple targets for different environments, only include the Guppy framework in the non-production targets
  • If you are using one target with multiple configurations for different environments, only include the Guppy framework in the non-production configuration
  • Set Guppy.shared.showOnShake = false in your didFinishLaunchingWithOptions for the specific times where Guppy should not be available

Swift Package Manager

https://github.com/johnsonandjohnson/Guppy-iOS.git

CocoaPods

pod 'Guppy'

Carthage

github "johnsonandjohnson/Guppy-iOS"

License

Guppy is released under the Apache 2.0 license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].