René's URL Explorer Experiment


Title: perf: Replace MessageToDict with optimized custom dict builder by abhijeet-dhumal · Pull Request #6015 · feast-dev/feast · GitHub

Open Graph Title: perf: Replace MessageToDict with optimized custom dict builder by abhijeet-dhumal · Pull Request #6015 · feast-dev/feast

X Title: perf: Replace MessageToDict with optimized custom dict builder by abhijeet-dhumal · Pull Request #6015 · feast-dev/feast

Description: Summary Fixes #6013 The feature server uses google.protobuf.json_format.MessageToDict for converting GetOnlineFeaturesResponse to JSON, but this generic converter is slow due to reflection-based field introspection. Changes Add feature_server_utils.py with convert_response_to_dict() function Custom dict builder optimized for GetOnlineFeaturesResponse structure Direct field access instead of reflection Efficient type-specific value extraction Serialize top-level status bool field (omitted when false, matching proto3 default behavior) Add comprehensive unit tests for the new serialization Performance Impact ~4x faster serialization, saving 5-15ms per request for typical feature responses with 50-200 features. Test Plan Added unit tests in test_feature_server_utils.py Tests verify output matches MessageToDict + proto_json.patch() format Tests cover all Value types, timestamps, metadata, status codes, top-level status field Performance test validates speedup Passes make lint-python

Open Graph Description: Summary Fixes #6013 The feature server uses google.protobuf.json_format.MessageToDict for converting GetOnlineFeaturesResponse to JSON, but this generic converter is slow due to reflection-based fi...

X Description: Summary Fixes #6013 The feature server uses google.protobuf.json_format.MessageToDict for converting GetOnlineFeaturesResponse to JSON, but this generic converter is slow due to reflection-based fi...

Opengraph URL: https://github.com/feast-dev/feast/pull/6015

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:3aefc020-8510-67ab-701e-465ae1343a42
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idAC80:18BA88:277291B:362339C:6A4EF456
html-safe-noncedc1bfe4597edf43b41284d75efcb6bb013235ecf909ec0c950833b5b0b51f11a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQzgwOjE4QkE4ODoyNzcyOTFCOjM2MjMzOUM6NkE0RUY0NTYiLCJ2aXNpdG9yX2lkIjoiNjg1NDI4MDYxNTE3NDI3MjA4NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacd405b22062d3a001b6b9040c2776fcf6d08747c4fb8982cdd59cdfaae4d22329
hovercard-subject-tagpull_request:3319095188
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/6015/files
twitter:imagehttps://avatars.githubusercontent.com/u/84722973?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/84722973?s=400&v=4
og:image:altSummary Fixes #6013 The feature server uses google.protobuf.json_format.MessageToDict for converting GetOnlineFeaturesResponse to JSON, but this generic converter is slow due to reflection-based fi...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/feast-dev/feast git https://github.com/feast-dev/feast.git
octolytics-dimension-user_id57027613
octolytics-dimension-user_loginfeast-dev
octolytics-dimension-repository_id161133770
octolytics-dimension-repository_nwofeast-dev/feast
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id161133770
octolytics-dimension-repository_network_root_nwofeast-dev/feast
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release2b8f23afb982271f1b22258a94aede67a6b77760
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feast-dev/feast/pull/6015/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6015%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6015%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=feast-dev%2Ffeast
Reloadhttps://github.com/feast-dev/feast/pull/6015/files
Reloadhttps://github.com/feast-dev/feast/pull/6015/files
Reloadhttps://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
feast-dev https://github.com/feast-dev
feasthttps://github.com/feast-dev/feast
Notifications https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Fork 1.4k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Star 7.1k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Code https://github.com/feast-dev/feast
Issues 212 https://github.com/feast-dev/feast/issues
Pull requests 171 https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality 1 https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Code https://github.com/feast-dev/feast
Issues https://github.com/feast-dev/feast/issues
Pull requests https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
franciscojavierarceohttps://github.com/franciscojavierarceo
feast-dev:masterhttps://github.com/feast-dev/feast/tree/master
abhijeet-dhumal:fix/custom-json-serialization-6013https://github.com/abhijeet-dhumal/feast/tree/fix/custom-json-serialization-6013
Conversation 48 https://github.com/feast-dev/feast/pull/6015
Commits 12 https://github.com/feast-dev/feast/pull/6015/commits
Checks 39 https://github.com/feast-dev/feast/pull/6015/checks
Files changed https://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
perf: Replace MessageToDict with optimized custom dict builder https://github.com/feast-dev/feast/pull/6015/files#top
Show all changes 12 commits https://github.com/feast-dev/feast/pull/6015/files
b28ddf9 perf: Replace MessageToDict with optimized custom dict builder abhijeet-dhumal Feb 25, 2026 https://github.com/feast-dev/feast/pull/6015/commits/b28ddf9bd362a6636621ac0244b28cd7d71a2cd2
40846ad Fix test: Use GetOnlineFeaturesResponseMetadata instead of non-existe… abhijeet-dhumal Mar 2, 2026 https://github.com/feast-dev/feast/pull/6015/commits/40846ad545f5b133b4702a57939fae248af42767
ad4882b fix: Rename to convert_response_to_dict, fix timestamp float-rounding… abhijeet-dhumal Mar 10, 2026 https://github.com/feast-dev/feast/pull/6015/commits/ad4882b51659b0b29c508efcf4ed480f6fcf93c3
698d0a1 fix: Return raw bytes to match proto_json.patch() behavior abhijeet-dhumal Mar 10, 2026 https://github.com/feast-dev/feast/pull/6015/commits/698d0a17cb2c6c79cc1364f1985f5fb5552abeb4
0c0637b fix: serialize top-level status field in convert_response_to_dict abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/0c0637b14b25fe4bfcb9d6314f6a2f3fbe90c461
3ac1755 fix: replace deprecated ORJSONResponse with JSONResponse abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/3ac17556ef181c8dc3a366c94aa7d6fd022243e2
5fff274 fix: handle set, list, and map Value types in _value_to_native abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/5fff274a0f9181e8d01c386da9c05e0f135d7414
b2f2909 fix: warn on scalar_map_val; fix test_unix_timestamp_list_val; docume… abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/b2f29090b9d36be92e0a1f1b98cb4fefe2c99652
c559ac5 docs: document float_precision=18 trade-off; add double_val round-tri… abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/c559ac5e09345abaaea5d73acef05f3e8c8244c2
388f89b fix: remove leftover orjson dead code causing mypy no-redef error abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/388f89b48897d615614ba2db515369fbc0f84bf4
ecce3cf fix: base64-encode bytes_val and bytes_list_val for JSON serialization abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/ecce3cf709e688db5b0fe680cd53bf7ee3101414
25e99b1 style: remove extra blank line in feature_server_utils.py abhijeet-dhumal May 27, 2026 https://github.com/feast-dev/feast/pull/6015/commits/25e99b15c85632c1342b12ae719b16769b06a281
Clear filters https://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
feature_server.py https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
feature_server_utils.py https://github.com/feast-dev/feast/pull/6015/files#diff-c511d4ec0a1018abb05459f0cb01ca639b5f4089abbc3be5773c5d599ba64101
test_feature_server_utils.py https://github.com/feast-dev/feast/pull/6015/files#diff-a69939c75c6c8fab6dca227011b4c12b6e0aa70c7507d3e46d59e03904b09156
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/feast/feature_server.pyhttps://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
View file https://github.com/abhijeet-dhumal/feast/blob/25e99b15c85632c1342b12ae719b16769b06a281/sdk/python/feast/feature_server.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6015/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/pull/6015/files#diff-47bf85967b55f577ebd4586f9a93f2cc0c9433270bd67b21ddb33e89fd464167
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/feast/feature_server_utils.pyhttps://github.com/feast-dev/feast/pull/6015/files#diff-c511d4ec0a1018abb05459f0cb01ca639b5f4089abbc3be5773c5d599ba64101
View file https://github.com/abhijeet-dhumal/feast/blob/25e99b15c85632c1342b12ae719b16769b06a281/sdk/python/feast/feature_server_utils.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6015/{{ revealButtonHref }}
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
devin-ai-integrationhttps://github.com/apps/devin-ai-integration
May 27, 2026https://github.com/feast-dev/feast/pull/6015/files#r3310463545
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
https://app.devin.ai/review/feast-dev/feast/pull/6015
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
ntkatholehttps://github.com/ntkathole
May 27, 2026https://github.com/feast-dev/feast/pull/6015/files#r3312032724
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
@abhijeet-dhumalhttps://github.com/abhijeet-dhumal
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
abhijeet-dhumalhttps://github.com/abhijeet-dhumal
May 27, 2026https://github.com/feast-dev/feast/pull/6015/files#r3312160333
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
abhijeet-dhumalhttps://github.com/abhijeet-dhumal
May 27, 2026https://github.com/feast-dev/feast/pull/6015/files#r3312162103
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6015/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.