{"id":15118806,"url":"https://github.com/johnsonandjohnson/Guppy-iOS","last_synced_at":"2025-09-28T01:30:58.078Z","repository":{"id":34895867,"uuid":"181016675","full_name":"johnsonandjohnson/Guppy-iOS","owner":"johnsonandjohnson","description":"iOS pod about a curious fish named Guppy","archived":true,"fork":false,"pushed_at":"2022-02-03T20:25:07.000Z","size":3007,"stargazers_count":39,"open_issues_count":2,"forks_count":3,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-09-17T04:44:42.424Z","etag":null,"topics":["guppy","ios","network-monitoring","networking","swift","urlsession"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnsonandjohnson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-12T13:45:28.000Z","updated_at":"2025-07-30T20:49:42.000Z","dependencies_parsed_at":"2022-08-08T02:15:43.874Z","dependency_job_id":null,"html_url":"https://github.com/johnsonandjohnson/Guppy-iOS","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/johnsonandjohnson/Guppy-iOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonandjohnson%2FGuppy-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonandjohnson%2FGuppy-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonandjohnson%2FGuppy-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonandjohnson%2FGuppy-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnsonandjohnson","download_url":"https://codeload.github.com/johnsonandjohnson/Guppy-iOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsonandjohnson%2FGuppy-iOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277184127,"owners_count":25775285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["guppy","ios","network-monitoring","networking","swift","urlsession"],"created_at":"2024-09-26T01:53:38.514Z","updated_at":"2025-09-28T01:30:56.945Z","avatar_url":"https://github.com/johnsonandjohnson.png","language":"Swift","funding_links":[],"categories":["Ranked by starred repositories"],"sub_categories":[],"readme":"![Guppy](https://user-images.githubusercontent.com/4382161/149004565-ffeba0bd-c863-4165-b417-78c1350e2c6b.png)\n\n[![Platform](https://img.shields.io/badge/platform-iOS-green.svg?style=flat)](https://img.shields.io/badge/platform-iOS-blue.svg?style=flat)\n[![Swift Version](https://img.shields.io/badge/Swift-5.0+-F16D39.svg?style=flat)](https://developer.apple.com/swift)\n[![CocoaPods](https://img.shields.io/cocoapods/v/Guppy.svg?style=flat)](https://cocoapods.org/pods/Guppy)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![codecov](https://codecov.io/gh/johnsonandjohnson/Guppy-iOS/branch/main/graph/badge.svg)](https://codecov.io/gh/johnsonandjohnson/Guppy-iOS)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nDo 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.\n\n## Usage\n\nWhile in the simulator you can use: `^ + ⌘ + z` to bring up Guppy or shake your phone.\n\n![Routes](https://user-images.githubusercontent.com/4382161/149004398-df4c8c40-eaa1-432a-b2f4-86fdf0e4a806.png)\n\n\nYou can dig deep into the details of your network logs and share them with your team or yourself.\n\n![Details](https://user-images.githubusercontent.com/4382161/149004684-37d3196d-473f-4fb3-8cde-0eee954d6ae4.png)\n\n\n## Example\n\nTo run the example project, clone the repo, and run `pod install` from the Example directory first.\n\n### URLSession\n\n```swift\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -\u003e Bool {\n        \n        Guppy.registerURLProtocol()\n        \n        return true\n    }\n}\n```\n\n### URLSession with Custom Protocols\n\n```swift \nclass Session: URLSession {\n    \n    init() {\n        let configuration = URLSessionConfiguration.default\n        \n        configuration.urlCache = nil\n        \n        // Protocols are evaluated in reverse order\n        // If GuppyURLProtocol is not the last protocol it is not guaranteed to be executed\n        configuration.protocolClasses = [MyCustomProtocol, GuppyURLProtocol.self]\n        \n        super.init(configuration: configuration)\n    }\n}\n\n```\n\n### Alamofire\n\n```swift \nclass SessionManager: Alamofire.SessionManager {\n\n    init() {\n        let configuration = URLSessionConfiguration.default\n\n        configuration.urlCache = nil\n        configuration.protocolClasses = [GuppyURLProtocol.self]\n        \n        super.init(configuration: configuration)\n    }\n}\n```\n\n\n## Requirements\n\n* Xcode 12.0+\n* iOS 13.0+\n\n## Installation\n\nGuppy 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:\n* If you are using multiple targets for different environments, only include the Guppy framework in the non-production targets\n* If you are using one target with multiple configurations for different environments, only include the Guppy framework in the non-production configuration\n* Set `Guppy.shared.showOnShake = false` in your `didFinishLaunchingWithOptions` for the specific times where Guppy should not be available\n\n### [Swift Package Manager](https://swift.org/package-manager/)\n\n```\nhttps://github.com/johnsonandjohnson/Guppy-iOS.git\n```\n\n### [CocoaPods](https://cocoapods.org)\n\n```ruby\npod 'Guppy'\n```\n\n### [Carthage](https://github.com/Carthage/Carthage)\n\n```\ngithub \"johnsonandjohnson/Guppy-iOS\"\n```\n\n## License\n\nGuppy is released under the Apache 2.0 license. See [LICENSE](https://github.com/johnsonandjohnson/Guppy-iOS/blob/main/LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsonandjohnson%2FGuppy-iOS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnsonandjohnson%2FGuppy-iOS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsonandjohnson%2FGuppy-iOS/lists"}