{"id":19991954,"url":"https://github.com/dotnetcore/CanalSharp","last_synced_at":"2025-05-04T11:30:30.784Z","repository":{"id":40625801,"uuid":"144843729","full_name":"dotnetcore/CanalSharp","owner":"dotnetcore","description":" Alibaba mysql database binlog subscription \u0026 consumer components Canal's .NET client.","archived":false,"fork":false,"pushed_at":"2025-05-04T02:33:48.000Z","size":1020,"stargazers_count":588,"open_issues_count":15,"forks_count":96,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-05-04T03:28:46.479Z","etag":null,"topics":["binlog","canal","canal-client","cdc","mysql","netcore","netstandard20","real-time"],"latest_commit_sha":null,"homepage":"","language":"C#","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/dotnetcore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","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,"zenodo":null}},"created_at":"2018-08-15T11:16:55.000Z","updated_at":"2025-04-27T11:39:53.000Z","dependencies_parsed_at":"2023-09-27T11:27:31.817Z","dependency_job_id":"6747dccc-d94d-43a0-af06-a7b8a98b3ab8","html_url":"https://github.com/dotnetcore/CanalSharp","commit_stats":{"total_commits":36,"total_committers":4,"mean_commits":9.0,"dds":0.3055555555555556,"last_synced_commit":"5c0b42b108e19be20717892150a3456bb3e41247"},"previous_names":["canalsharp/canalsharp"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnetcore%2FCanalSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnetcore%2FCanalSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnetcore%2FCanalSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnetcore%2FCanalSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnetcore","download_url":"https://codeload.github.com/dotnetcore/CanalSharp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252284652,"owners_count":21723665,"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":["binlog","canal","canal-client","cdc","mysql","netcore","netstandard20","real-time"],"created_at":"2024-11-13T04:51:58.981Z","updated_at":"2025-05-04T11:30:29.622Z","avatar_url":"https://github.com/dotnetcore.png","language":"C#","readme":"# CanalSharp\n\n[![Latest version](https://img.shields.io/nuget/v/CanalSharp.svg)](https://www.nuget.org/packages/CanalSharp/) [![Member project of .NET Core Community](https://img.shields.io/badge/member%20project%20of-NCC-9e20c9.svg)](https://github.com/dotnetcore)\n\nCanalSharp 是阿里巴巴开源项目 mysql 数据库 binlog 的增量订阅\u0026消费组件 Canal 的 **.NET 客户端**。在数据库中，**更改数据捕获**（**CDC**）是一组软件设计模式，用于确定和跟踪已更改的数据，以便可以使用已更改的数据来采取措施，Canal 便是 mysql 数据库的一种 cdc 组件。\n\n## 快速入门\n\n### 安装\n\n```shell\nInstall-Package CanalSharp\n```\n\n### 初始化日志\n\n```csharp\nvar loggerFactory = LoggerFactory.Create(builder =\u003e\n{\n    builder\n        .AddFilter(\"Microsoft\", LogLevel.Debug)\n        .AddFilter(\"System\", LogLevel.Information)\n        .AddConsole();\n});\nvar logger= loggerFactory.CreateLogger\u003cSimpleCanalConnection\u003e();\n```\n\nCanalSharp 使用 **Microsoft.Extensions.Logging.Abstractions** ，因为目前主流日志组件，如：nlog、serilog 等，全部支持此日志抽象接入，也就是说你可以通过安装 nlog、serilog 对其的适配，来使用它们，无论是 Console App 或则是 Web App。\n\n### 创建连接\n\n```csharp\nvar conn=new SimpleCanalConnection(new SimpleCanalOptions(\"127.0.0.1\",11111,1234),logger);\n//连接到 Canal Server\nawait conn.ConnectAsync();\n//订阅\nawait conn.SubscribeAsync();\n```\n\n### 获取数据\n\n```csharp\nvar msg = await conn.GetAsync(1024);\n```\n\n## 支持版本\n\n| CanalSharp | Canal |\n|------------|-------|\n| 1.2.0      | 1.1.6 |\n\nMysql 版本由 Canal 决定。\n\n## 文档\n\nGithub: [docs](https://github.com/dotnetcore/CanalSharp/tree/main/docs/zh)\n\nWebSite: [Canal Document](https://canalsharp.azurewebsites.net/zh/) (推荐)\n\n## 问题反馈\n\n请通过 [Issue](https://github.com/dotnetcore/CanalSharp/issues/new) 向我们提交问题反馈，在提交时尽可能提供详细的信息，以便我们进行排查和解决。\n\n## 贡献代码\n\n如果你有一些好的想法，欢迎您提交 [Pull Request](https://github.com/dotnetcore/canalsharp/pulls) 或者 [Issue](https://github.com/dotnetcore/CanalSharp/issues/new)\n\n## 重构进度\n\n目前重构的版本已经完全覆盖旧版本，且性能更高，代码更优美，实现了旧版本未实现的部分功能，支持最新的 Canal。\n\n| Task                           | Status        |\n|--------------------------------|---------------|\n| protobuf 3 协议生成                | 已完成           |\n| 对接 Canal                       | 已完成           |\n| 数据订阅封装                         | TODO          |\n| 集群支持(Service 集群和 Client 集tgi群) | 已完成           |\n| 数据发送到Kafka                     | 直接通过 Canal 发送 |\n| 数据发送到Redis                     | 直接通过 Canal 发送 |\n\n","funding_links":[],"categories":["C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnetcore%2FCanalSharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnetcore%2FCanalSharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnetcore%2FCanalSharp/lists"}