{"id":50734112,"url":"https://github.com/openimsdk/openim-sdk-core","last_synced_at":"2026-06-10T12:00:58.174Z","repository":{"id":37399733,"uuid":"378864555","full_name":"openimsdk/openim-sdk-core","owner":"openimsdk","description":"Instant Messaging","archived":false,"fork":false,"pushed_at":"2026-06-05T03:08:44.000Z","size":15570,"stargazers_count":486,"open_issues_count":69,"forks_count":427,"subscribers_count":15,"default_branch":"main","last_synced_at":"2026-06-05T05:05:58.886Z","etag":null,"topics":["android","im","imsdk","ios","sdk"],"latest_commit_sha":null,"homepage":"https://openim.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openimsdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"docs/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-06-21T08:44:48.000Z","updated_at":"2026-06-03T16:49:56.000Z","dependencies_parsed_at":"2023-02-19T06:15:26.912Z","dependency_job_id":"86eeb93a-e4fc-43d3-af36-2553c9a28bdb","html_url":"https://github.com/openimsdk/openim-sdk-core","commit_stats":null,"previous_names":[],"tags_count":153,"template":false,"template_full_name":null,"purl":"pkg:github/openimsdk/openim-sdk-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-sdk-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-sdk-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-sdk-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-sdk-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openimsdk","download_url":"https://codeload.github.com/openimsdk/openim-sdk-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-sdk-core/sbom","scorecard":{"id":228387,"data":{"date":"2025-08-11","repo":{"name":"github.com/openimsdk/openim-sdk-core","commit":"3cf0e1900bd1f0ebdbd0fb044c06e76aeddcb38d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Maintained","score":10,"reason":"18 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":6,"reason":"Found 19/29 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.event.pull_request.title ': .github/workflows/cleanup-after-milestone-prs-merged.yml:18","Warn: script injection with untrusted input ' github.event.pull_request.head.ref ': .github/workflows/cleanup-after-milestone-prs-merged.yml:61","Warn: untrusted code checkout '${{ github.event.pull_request.head.ref }}': .github/workflows/comment-check.yml:24"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/comment-check.yml:14","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/go-build-test.yml:17","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/go-build-test.yml:43","Info: jobLevel 'contents' permission set to 'read': .github/workflows/remove-unused-labels.yml:11","Info: jobLevel 'contents' permission set to 'read': .github/workflows/reopen-issue.yml:11","Warn: no topLevel permission defined: .github/workflows/auto-invite-comment.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/changelog.yml:8","Warn: no topLevel permission defined: .github/workflows/cleanup-after-milestone-prs-merged.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/comment-check.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/delete-users-invalid-comments.yml:4","Warn: no topLevel permission defined: .github/workflows/go-build-test.yml:1","Warn: no topLevel permission defined: .github/workflows/issue-translator.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/merge-from-milestone.yml:4","Warn: no topLevel permission defined: .github/workflows/remove-unused-labels.yml:1","Warn: no topLevel permission defined: .github/workflows/reopen-issue.yml:1","Warn: no topLevel permission defined: .github/workflows/sdk-releaser.yml:1","Warn: no topLevel permission defined: .github/workflows/update-version-file-on-release.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-invite-comment.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/auto-invite-comment.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/changelog.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/changelog.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/changelog.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/changelog.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cleanup-after-milestone-prs-merged.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/cleanup-after-milestone-prs-merged.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/comment-check.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/comment-check.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/comment-check.yml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/comment-check.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/comment-check.yml:146: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/comment-check.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/go-build-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-test.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/go-build-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-test.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/go-build-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-test.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/go-build-test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-build-test.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/go-build-test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/issue-translator.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/issue-translator.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/merge-from-milestone.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/merge-from-milestone.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/remove-unused-labels.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/remove-unused-labels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/remove-unused-labels.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/remove-unused-labels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/remove-unused-labels.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/remove-unused-labels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/remove-unused-labels.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/remove-unused-labels.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reopen-issue.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/reopen-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reopen-issue.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/reopen-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reopen-issue.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/reopen-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reopen-issue.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/reopen-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:110: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:150: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:160: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sdk-releaser.yml:181: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/sdk-releaser.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update-version-file-on-release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/update-version-file-on-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update-version-file-on-release.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/openim-sdk-core/update-version-file-on-release.yml/main?enable=pin","Warn: goCommand not pinned by hash: .github/workflows/go-build-test.yml:72","Warn: goCommand not pinned by hash: .github/workflows/sdk-releaser.yml:65","Warn: goCommand not pinned by hash: .github/workflows/sdk-releaser.yml:66","Warn: goCommand not pinned by hash: .github/workflows/sdk-releaser.yml:116","Warn: goCommand not pinned by hash: .github/workflows/sdk-releaser.yml:117","Info:   0 out of  30 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   5 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.8.3-patch.10 not signed: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/232772245","Warn: release artifact v3.8.3-patch.9 not signed: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/226392594","Warn: release artifact v3.8.3-patch.5 not signed: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/220227723","Warn: release artifact v3.8.3-patch.10 does not have provenance: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/232772245","Warn: release artifact v3.8.3-patch.9 does not have provenance: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/226392594","Warn: release artifact v3.8.3-patch.5 does not have provenance: https://api.github.com/repos/openimsdk/openim-sdk-core/releases/220227723"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found linked content: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found text in security policy: github.com/openimsdk/.github/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 2 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T04:18:37.708Z","repository_id":37399733,"created_at":"2025-08-17T04:18:37.708Z","updated_at":"2025-08-17T04:18:37.708Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34151276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"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":["android","im","imsdk","ios","sdk"],"created_at":"2026-06-10T12:00:57.358Z","updated_at":"2026-06-10T12:00:58.165Z","avatar_url":"https://github.com/openimsdk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"border-bottom: none\"\u003e\n    \u003cb\u003e\n        \u003ca href=\"https://doc.rentsoft.cn/sdks/introduction\"\u003eopenim-sdk-core\u003c/a\u003e\u003cbr\u003e\n    \u003c/b\u003e\n\u003c/h1\u003e\n\u003ch3 align=\"center\" style=\"border-bottom: none\"\u003e\n      ⭐️  Used in iOS, Android, PC, Web (WebAssembly) and other platforms  ⭐️ \u003cbr\u003e\n\u003ch3\u003e\n\n\u003cp align=center\u003e\n\u003ca href=\"https://goreportcard.com/report/github.com/openimsdk/openim-sdk-core\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/openimsdk/openim-sdk-core\" alt=\"A+\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/openim-sdk-core/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/OpenIMSDK/Open-IM-Server/good%20first%20issue?logo=%22github%22\" alt=\"good first\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/openim-sdk-core\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/OpenIMSDK/openim-sdk-core.svg?style=flat\u0026logo=github\u0026colorB=deeppink\u0026label=stars\"\u003e\u003c/a\u003e\n\u003ca href=\"https://join.slack.com/t/openimsdk/shared_invite/zt-2ijy1ys1f-O0aEDCr7ExRZ7mwsHAVg9A\"\u003e\u003cimg src=\"https://img.shields.io/badge/Slack-100%2B-blueviolet?logo=slack\u0026amp;logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/openim-sdk-core/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache--2.0-green\"\u003e\u003c/a\u003e\n\u003ca href=\"https://golang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Language-Go-blue.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"./README.md\"\u003e\u003cb\u003eEnglish\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"./README_zh-CN.md\"\u003e\u003cb\u003e中文\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/p\u003e\n\n---\n\n## 🧩 Features\n\n\u003c!--BEGIN_DESCRIPTION--\u003e\n\nOpenIM-SDK-core is the core SDK of OpenIM, serving as the cross-platform foundation for all open-source OpenIM SDKs (excluding mini web).\nAll open-source OpenIM SDKs (except mini web) are built upon this core layer, ensuring consistency, stability, and seamless cross-platform integration.\n\n\u003c!--END_DESCRIPTION--\u003e\n\n- [x] Network management with intelligent heartbeat\n- [x] Message encoding and decoding\n- [x] Local message storage\n- [x] Relationship data synchronization\n- [x] IM message synchronization\n- [x] Cross-platform communication and callback management\n\n- Supported Platforms\n  - [x] Windows\n  - [x] MacOS\n  - [x] Linux\n  - [x] iOS\n  - [x] Android\n  - [x] Web (WebAssembly)\n  - [ ] Mini Web\n\n## Quickstart\n\n\u003e **Note**: This section guides you on how to quickly connect to the server and get OpenIM-SDK-core running.\n\n### 🚀 Connect to the Server and Run\n\nFollow these steps to quickly set up and run OpenIM-SDK-core by simulating an app environment using test files.\n\n1. **Enter the `test` directory**\n   ```bash\n    # This folder contains unit test files for all interface functions of OpenIM-SDK-core,\n    # used to simulate an app connecting to the server for login testing.\n   cd test\n   ```\n2. **Modify the configuration file**\n   \u003e [Set up your own server beforehand.](https://github.com/openimsdk/open-im-server.git)\n\n- Open the config file in the test directory.\n- Update the following fields with your server information:\n\n  ```json\n  {\n    \"APIADDR\": \"http://your-server-api-address\",\n    \"WSADDR\": \"ws://your-server-websocket-address\",\n    \"UserID\": \"your-test-user-id\"\n  }\n  ```\n\n3. **Run test functions to simulate an app using the SDK**\n\n- Identify the test function you want to execute (The `init` file has already completed the SDK initialization and login logic. You can now call other functions).\n  ```bash\n  go test -run TestFunctionName\n  ```\n- Example: Running the login test\n  ```bash\n  go test -run Test_GetAllConversationList\n  ```\n  Now, you can use the test cases to simulate real SDK usage, just like an actual app.\n\n## 📦 Build and Package for Different Platforms\n\nOnce the SDK is tested successfully, you can build and package it for various platforms:\n\n- **Android/iOS**\n\nRefer to [this guide](./docs/gomobile-android-ios-setup.md) for detailed instructions on building and packaging for Android and iOS.\n\n- **WebAssembly**\n\nNavigate to the `wasm/cmd` directory and run the following command to build the WebAssembly package:\n\n```bash\nmake wasm  # Ensure Go is installed\n```\n\nIf you are on Windows, use the following command instead:\n\n```bash\nmingw32-make wasm  # Ensure MinGW64 is installed\n```\n\n- **Windows, MacOS, Linux**\n\nRefer to [this repository](https://github.com/openimsdk/openim-sdk-cpp.git) for platform-specific build instructions.\n\n## Contributing \u0026 Development\n\nOpenIM Our goal is to build a top-level open source community. We have a set of standards, in the [Community repository](https://github.com/openimsdk/community).\n\nIf you'd like to contribute to this openim-sdk-core repository, please read our [contributor documentation](https://github.com/openimsdk/openim-sdk-core/blob/main/CONTRIBUTING.md).\n\n## community meeting\n\nWe welcome everyone to join us and contribute to openim-sdk-core, whether you are new to open source or professional. We are committed to promoting an open source culture, so we offer community members neighborhood prizes and reward money in recognition of their contributions. We believe that by working together, we can build a strong community and make valuable open source tools and resources available to more people. So if you are interested in openim-sdk-core, please join our community and start contributing your ideas and skills!\n\nWe take notes of each [biweekly meeting](https://github.com/openimsdk/Open-IM-Server/issues/381) in [GitHub discussions](https://github.com/openimsdk/Open-IM-Server/discussions/categories/meeting), and our minutes are written in [Google Docs](https://docs.google.com/document/d/1nx8MDpuG74NASx081JcCpxPgDITNTpIIos0DS6Vr9GU/edit?usp=sharing).\n\nopenim-sdk-core maintains a [public roadmap](https://github.com/openimsdk/community/tree/main/roadmaps). It gives a a high-level view of the main priorities for the project, the maturity of different features and projects, and how to influence the project direction.\n\n## about OpenIM\n\n### common\n\n- https://github.com/openimsdk/automation: OpenIM Automation, cicd, and actions, Robotics.\n- https://github.com/openimsdk/community: Community Management for OpenIM\n\n### OpenIM **Links**\n\nContains some common parts of the OpenIM community.\n\n- https://github.com/openimsdk/automation: OpenIM Automation, cicd, and actions, Robotics.\n- https://github.com/openimsdk/openim-sdk-core: The IMSDK implemented by golang can be used in iOS, Android, PC and other platforms.\n- https://github.com/openimsdk/openim-sdk-core: Instant messaging IM server.\n- https://github.com/openimsdk/community: Community Management for OpenIM.\n\n### SDKs\n\n- [openim-sdk-core](https://github.com/openimsdk/openim-sdk-core): A cross-platform SDK implemented in golang that can be used in iOS, Android, PC, and other platforms.\n- [Open-IM-SDK-iOS](https://github.com/openimsdk/Open-IM-SDK-iOS): An iOS SDK generated based on openim-sdk-core, available for developers to reference.\n- [Open-IM-SDK-Android](https://github.com/openimsdk/Open-IM-SDK-Android): An Android SDK generated based on openim-sdk-core, available for developers to reference.\n- [Open-IM-SDK-Flutter](https://github.com/openimsdk/Open-IM-SDK-Flutter): A Flutter SDK generated based on Open-IM-SDK-iOS and Open-IM-SDK-Android, available for developers to reference.\n- [Open-IM-SDK-Uniapp](https://github.com/openimsdk/Open-IM-SDK-Uniapp): A uni-app SDK generated based on Open-IM-SDK-iOS and Open-IM-SDK-Android, available for developers to reference.\n\n### Demos\n\n- [Open-IM-iOS-Demo](https://github.com/openimsdk/Open-IM-iOS-Demo): An iOS demo based on Open-IM-SDK-iOS, available for developers to reference.\n- [Open-IM-Android-Demo](https://github.com/openimsdk/Open-IM-Android-Demo): An Android demo based on Open-IM-SDK-Android, available for developers to reference.\n- [Open-IM-Flutter-Demo](https://github.com/openimsdk/Open-IM-Flutter-Demo): A Flutter demo based on Open-IM-SDK-Flutter, available for developers to reference.\n\n## Used By\n\nOpenIM is used by the following companies ,let's write it down in [ADOPTER](https://github.com/openimsdk/community/blob/main/ADOPTERS.md).\n\nPlease leave your use cases in the comments [here](https://github.com/openimsdk/Open-IM-Server/issues/379).\n\n## License\n\nThis software is licensed under a dual-license model:\n\n- The GNU Affero General Public License (AGPL), Version 3 or later; **OR**\n- Commercial license terms from OpenIMSDK.\n\nIf you wish to use this software under commercial terms, please contact us at: contact@openim.io\n\nFor more information, see: https://www.openim.io/en/licensing\n\n\n\n## Thanks to our contributors!\n\n\u003ca href=\"https://github.com/openimsdk/openim-sdk-core/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=OpenIMSDK/openim-sdk-core\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Fopenim-sdk-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenimsdk%2Fopenim-sdk-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Fopenim-sdk-core/lists"}