Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature][Dubbo-python] Implement the basic functions of an RPC framework. #34

Merged
merged 32 commits into from
Aug 7, 2024

Conversation

cnzakii
Copy link
Collaborator

@cnzakii cnzakii commented Aug 4, 2024

What is the purpose of the change

This is a subtask of the GSoC project.

Brief changelog

The completed milestones include:

  1. User API Calls: Users can reference and expose services through the Client and Server.
  2. Proxy Layer: Abstracted and implemented RpcCallable (Proxy) and ServiceHandler (Invoker).
  3. Protocol Layer: Implemented the Triple protocol, fully compatible with the gRPC protocol. Also supports multiple compression methods, including Identity, Gzip, and Bzip2.
  4. Transport Layer: Based on asyncio and combined with the h2 library, the Http2 protocol is implemented, along with connection-level DATA frame flow control, stream-level frame inbound and outbound order control, and stream multiplexing. And it supports significantly improving asyncio's performance by incorporating uvloop.
  5. Serialization Layer: Supports user-defined serialization and deserialization methods.
  6. Plugin Extension Mechanism: Achieved plugin registration and loading through importlib and registries.
  7. Logging Wrapper: Abstracted and encapsulated logging, including log coloring, console output, and log file output.

Verifying this change

Checklist

  • Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
  • Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist.
  • Add some description to dubbo-website project if you are requesting to add a feature.
  • GitHub Actions works fine on your own branch.
  • If this contribution is large, please follow the Software Donation Guide.

@cnzakii
Copy link
Collaborator Author

cnzakii commented Aug 4, 2024

@AlbumenJ PTAL

@AlbumenJ AlbumenJ merged commit f3e45fa into apache:main Aug 7, 2024
3 checks passed
@cnzakii cnzakii deleted the feat/base-rpc branch August 9, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants