{"id":13536681,"url":"https://github.com/shepeliev/webrtc-kmp","last_synced_at":"2026-01-11T16:54:43.696Z","repository":{"id":43793385,"uuid":"329550581","full_name":"shepeliev/webrtc-kmp","owner":"shepeliev","description":"WebRTC Kotlin Multiplatform SDK","archived":false,"fork":false,"pushed_at":"2025-03-24T12:25:44.000Z","size":30899,"stargazers_count":226,"open_issues_count":12,"forks_count":43,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-24T13:31:08.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/shepeliev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-14T08:19:36.000Z","updated_at":"2025-03-24T12:25:49.000Z","dependencies_parsed_at":"2023-01-30T21:00:27.126Z","dependency_job_id":"21abc029-b8c6-40a5-baa9-d4378a972bbb","html_url":"https://github.com/shepeliev/webrtc-kmp","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shepeliev%2Fwebrtc-kmp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shepeliev%2Fwebrtc-kmp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shepeliev%2Fwebrtc-kmp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shepeliev%2Fwebrtc-kmp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shepeliev","download_url":"https://codeload.github.com/shepeliev/webrtc-kmp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246750964,"owners_count":20827809,"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","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":[],"created_at":"2024-08-01T09:00:47.192Z","updated_at":"2026-01-11T16:54:43.689Z","avatar_url":"https://github.com/shepeliev.png","language":"Kotlin","funding_links":[],"categories":["Libraries"],"sub_categories":["Network","🌎 Network"],"readme":"# WebRTC KMP ![Maven Central](https://img.shields.io/maven-central/v/com.shepeliev/webrtc-kmp?style=flat-square)\n\nWebRTC Kotlin Multiplatform SDK is a comprehensive toolkit for integrating WebRTC functionality into your multiplatform projects. \nIt supports Android, iOS, JS. Other platforms - PRs are welcome.\n\n\n## API implementation map\n API |      Android       | iOS | JS/WasmJS \n :-: |:------------------:| :-: | :---: \n Audio/Video | :white_check_mark: | :white_check_mark: | :white_check_mark:\n Data channel | :white_check_mark: | :white_check_mark: | :white_check_mark:\n Screen Capture | :white_check_mark: | | :white_check_mark:\n\n## WebRTC revision\nCurrent revision: M125\n\n## Installation\nThe library is published to [Maven Central](https://search.maven.org/artifact/com.shepeliev/webrtc-kmp).\n\n\n### Add dependency to your common source set:\n```kotlin\ncommonMain.dependencies {\n  dependencies {\n    implementation(\"com.shepeliev:webrtc-kmp:$webRtcKmpVersion\")\n  }\n}\n```\n\n### Running on iOS\nOn iOS, the WebRTC SDK is not linked as a transitive dependency, so you need to add it to your iOS project manually.\nThis can be done using CocoaPods or SPM, depending on your project setup. Here is an example of how to link \nthe WebRTC SDK using CocoaPods in `build.gradle.kts`:\n\n```kotlin\nkotlin {\n  cocoapods {\n    version = \"1.0.0\"\n    summary = \"Shared module\"\n    homepage = \"not published\"\n    ios.deploymentTarget = \"13.0\"\n   \n    pod(\"WebRTC-SDK\") { \n      version = \"125.6422.05\"\n      moduleName = \"WebRTC\"\n    }\n  \n    podfile = project.file(\"../iosApp/Podfile\")\n  \n    framework {\n      baseName = \"shared\"\n      isStatic = true  \n    }\n  \n    xcodeConfigurationToNativeBuildType[\"CUSTOM_DEBUG\"] = NativeBuildType.DEBUG\n    xcodeConfigurationToNativeBuildType[\"CUSTOM_RELEASE\"] = NativeBuildType.RELEASE\n  }\n\n    iosX64()\n    iosArm64()\n    iosSimulatorArm64()\n}\n```\n\nAlso add the following to your `Podfile` in the target section:\n```Ruby\nuse_frameworks!\npod 'shared', :path =\u003e '../shared'\n```\n\n## Usage\n\nPlease refer to [sample](sample/README.md).\n\n### Screen Share in Android\n```kotlin\n// Set MediaProjection permission intent using `MediaProjectionIntentHolder`\nval mediaProjectionPermissionLauncher = rememberLauncherForActivityResult(\n    contract = ActivityResultContracts.StartActivityForResult()\n) { activityResult -\u003e\n    activityResult.data?.also {\n        MediaProjectionIntentHolder.intent = it\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshepeliev%2Fwebrtc-kmp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshepeliev%2Fwebrtc-kmp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshepeliev%2Fwebrtc-kmp/lists"}