-
Notifications
You must be signed in to change notification settings - Fork 99
gsoc containing json serialization handler and dubbo codec #51
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
base: main
Are you sure you want to change the base?
Conversation
Pull Request SummaryThis pull request includes the complete implementation based on previous discussions and feedback. It also incorporates suggestions from @cnzakii, who has been mentoring and guiding the direction. 🔑 Key Highlights
self.users_db = [
User(
id=1,
name="Alice",
email="alice@example.com",
age=30,
login_history=[
LoginRecord(timestamp=datetime.utcnow() - timedelta(days=1), ip_address="192.168.1.10"),
LoginRecord(timestamp=datetime.utcnow(), ip_address="192.168.1.11")
],
meta=UserMeta(tags=frozenset(["admin", "beta"]), scores=(88, 92, 85))
),
User(
id=2,
name="Bob",
email="bob@example.com",
age=25,
login_history=[
LoginRecord(timestamp=datetime.utcnow() - timedelta(hours=2), ip_address="192.168.1.20")
],
meta=UserMeta(tags=frozenset(["tester"]), scores=(75, 80, 70))
)
] |
|
@cnzakii check this out |
|
@cnzakii in this repo i have a code from which i run the server and client |
src/dubbo/classes.py
Outdated
|
|
||
| from typing import Any, Callable, Optional, Union,Type | ||
| from abc import ABC, abstractmethod | ||
| from pydantic import BaseModel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This place will still cause strong dependency on pydantic
| arg_serialization=(request_serializer, None), | ||
| return_serialization=(None, response_deserializer), | ||
| rpc_type=RpcTypes.CLIENT_STREAM.value, | ||
| """ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also hope to see the implementation on the server side
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cnzakii
If you don't mind can you explain me about this
like most of the work of server can be handle by the rpc handler
or
Am i missing something ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can review the proposal I sent in Slack, which also contains the corresponding Server interface design. You should also implement the construction method descriptors on the Server side, select the serialization method, and so on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok
Now i understand
Thx for clarification
|
@cnzakii |
|
@aditya0yadav While it lacks some generality, the overall work is good. Please make optimizations based on my comments, complete the remaining tasks, and submit the relevant code. |
|
@cnzakii ok sir |
|
@cnzakii, then there's no need for an RPC method handler, right? |
|
@cnzakii |
|
@cnzakii Please check out the pull request , sir |
|
Okay, I'll do a code review as soon as I can. |
|
Quick View: missing Test, please supplement. |
|
Hi sir I wanted to share a quick update. This project still requires Hessian integration, and until that is added, there is more work to be done. I plan to continue working on this project after GSoC, focusing on Hessian integration and fixing additional bugs in the system. Thank you, |
|
@cnzakii |
…e handled by the pyhessian
|
@cnzakii Please take a look at this |
|
@cnzakii done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please carefully review my comments and either address the issues I raised or clearly respond in the comments explaining why no changes are made.
|
@cnzakii Please review this. I refactored the JSON and Protobuf code into multiple modules, using the Extension Loader to manage and call the appropriate handlers. JSON: Multiple type handlers are now supported via the Extension Loader. The system will use ujson or orjson depending on availability and performance. Protobuf: If the user is using BetterProto or Google Protoc, the correct message handler will be automatically inferred and used. This is also managed through the Extension Loader, so no manual intervention is needed. |
…es and introduce it in the codec
What is the purpose of the change
ISSUE: #issue_number
Brief changelog
Verifying this change
Checklist