René's URL Explorer Experiment


Title: Better File Upload/Download operations in oRPC thanks to builtin integration of TUS · Issue #482 · middleapi/orpc · GitHub

Open Graph Title: Better File Upload/Download operations in oRPC thanks to builtin integration of TUS · Issue #482 · middleapi/orpc

X Title: Better File Upload/Download operations in oRPC thanks to builtin integration of TUS · Issue #482 · middleapi/orpc

Description: This is just an idea; I haven't thought about how it will work or what the API will look like yet. As told in the documentation: For files larger than 10MB, it is recommended to use a dedicated solution for performance and reliability. F...

Open Graph Description: This is just an idea; I haven't thought about how it will work or what the API will look like yet. As told in the documentation: For files larger than 10MB, it is recommended to use a dedicated sol...

X Description: This is just an idea; I haven't thought about how it will work or what the API will look like yet. As told in the documentation: For files larger than 10MB, it is recommended to use a dedicated...

Opengraph URL: https://github.com/middleapi/orpc/issues/482

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Better File Upload/Download operations in oRPC thanks to builtin integration of TUS","articleBody":"This is just an idea; I haven't thought about how it will work or what the API will look like yet.\n\nAs told in the [documentation](https://orpc.unnoq.com/docs/file-upload-download):\n> For files larger than 10MB, it is recommended to use a dedicated solution for performance and reliability.\n\nFrom my understanding, it is not recommended for \"big\" files, because under the hood, it encodes/decodes in base64 (haven't tested it)?\nEven, file upload is much more than only 1 API request, it's not the same thing as basic JSON api call. Performance and resumable file uploads are crucial + good UX client side to show how much kb has been uploaded and much need to be uploaded still etc.\n\n[tus - Open Protocol for Resumable File Uploads](https://tus.io) makes file uploads more reliable and performant for any size of files.\n\nWhile, we can already use [@tus/server](https://www.npmjs.com/package/@tus/server) in combination with oRPC, I believe there might be a better way that keep type-safety, zod goodness and simplicity while preserving tus goodness too.\n\nWould be great to define oRPC route as \"tus route\" and then call them with the RPCClient like normal routes with more features like [tus-js-client](https://www.npmjs.com/package/tus-js-client), for example:\n\n```ts\nconst handleUpload = async (file: File): Promise\u003cvoid> => {\n  const upload = new tus.Upload(file, {\n    retryDelays: [0, 1_000, 3_000, 5_000],\n    metadata: {\n      filename: file.name,\n      mimetype: file.type\n    },\n    onError: (error) => {\n      console.error(error)\n    },\n    onProgress: (bytesUploaded, bytesTotal) =>{\n      const percentage = (bytesUploaded / bytesTotal * 100).toFixed(2)\n      console.log(bytesUploaded, bytesTotal, percentage + \"%\")\n    },\n    onSuccess: () => {\n    console.log(\"Download %s from %s\", upload.file.name, upload.url)\n    }\n  })\n  const [previousUpload] = await upload.findPreviousUploads()\n  if (previousUpload != null) {\n    upload.resumeFromPreviousUpload(previousUpload)\n  }\n  upload.start()\n}\n```\n\nThe good thing, is that we can have a `onProgress` and regularly tell the user, how much bytes uploaded, how much still needed, percentage.\n\nAlso we have out of the box, resumability so for example, if the internet connection of the user is bad, and is interrupted, they can try to upload again the file, without the need of uploading the file from scratch, especially useful for big files, or really bad connection, like mobile network.\n\nWe could have a way to do it, with oRPC, the same type-safety, and APIs to define middleware.","author":{"url":"https://github.com/theoludwig","@type":"Person","name":"theoludwig"},"datePublished":"2025-05-09T14:20:01Z","url":"https://github.com/middleapi/orpc/issues/482"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:0b2b110e-ce91-b3fb-debf-1b68f61c6101
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id8478:35FB3F:3DC673:56C60E:6AF9B237
html-safe-nonceebac9b7b021fbb446b735deddbcab88042f1f676c2f631a2fcf84ae0807fea23
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NDc4OjM1RkIzRjozREM2NzM6NTZDNjBFOjZBRjlCMjM3IiwidmlzaXRvcl9pZCI6IjU1NjUxNDcwMzU5ODk1NTM3MTkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac204ce7eb8f2b2190b8a68fcc52516875a7f8d615e42597c1d511428a3541df82
hovercard-subject-tagissue:3052326382
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/middleapi/orpc/482/issue_layout
twitter:imagehttps://opengraph.githubassets.com/e1cab3ad2a13c1ab86c4f916dd2f3f2a61eb3ec0a1deebdf68698f4856e372f9/middleapi/orpc/issues/482
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/e1cab3ad2a13c1ab86c4f916dd2f3f2a61eb3ec0a1deebdf68698f4856e372f9/middleapi/orpc/issues/482
og:image:altThis is just an idea; I haven't thought about how it will work or what the API will look like yet. As told in the documentation: For files larger than 10MB, it is recommended to use a dedicated sol...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernametheoludwig
hostnamegithub.com
expected-hostnamegithub.com
None612d3e6ffd693e7ea8d9fcf452370995872baef31d825b1fedef704cd3d24ac7
turbo-cache-controlno-preview
go-importgithub.com/middleapi/orpc git https://github.com/middleapi/orpc.git
octolytics-dimension-user_id173978236
octolytics-dimension-user_loginmiddleapi
octolytics-dimension-repository_id863811008
octolytics-dimension-repository_nwomiddleapi/orpc
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id863811008
octolytics-dimension-repository_network_root_nwomiddleapi/orpc
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release072e34035c13c31543fba9f025cbbbda4210dae4
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/middleapi/orpc/issues/482#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmiddleapi%2Forpc%2Fissues%2F482
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
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
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://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
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmiddleapi%2Forpc%2Fissues%2F482
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=middleapi%2Forpc
Reloadhttps://github.com/middleapi/orpc/issues/482
Reloadhttps://github.com/middleapi/orpc/issues/482
Reloadhttps://github.com/middleapi/orpc/issues/482
middleapihttps://github.com/middleapi
orpchttps://github.com/middleapi/orpc
Codehttps://github.com/middleapi/orpc
Issues22 (22)https://github.com/middleapi/orpc/issues
Pull requests21 (21)https://github.com/middleapi/orpc/pulls
Discussionshttps://github.com/middleapi/orpc/discussions
Actionshttps://github.com/middleapi/orpc/actions
Projectshttps://github.com/middleapi/orpc/projects
Security and quality7 (7)https://github.com/middleapi/orpc/security
Insightshttps://github.com/middleapi/orpc/pulse
https://github.com/middleapi/orpc
New issuehttps://github.com/login?return_to=https://github.com/middleapi/orpc/issues/482
New issuehttps://github.com/login?return_to=https://github.com/middleapi/orpc/issues/482
Better File Upload/Download operations in oRPC thanks to builtin integration of TUShttps://github.com/middleapi/orpc/issues/482#top
enhancementNew feature or requesthttps://github.com/middleapi/orpc/issues?q=state%3Aopen%20label%3A%22enhancement%22
https://github.com/theoludwig
theoludwighttps://github.com/theoludwig
on May 9, 2025https://github.com/middleapi/orpc/issues/482#issue-3052326382
documentationhttps://orpc.unnoq.com/docs/file-upload-download
tus - Open Protocol for Resumable File Uploadshttps://tus.io
@tus/serverhttps://www.npmjs.com/package/@tus/server
tus-js-clienthttps://www.npmjs.com/package/tus-js-client
https://github.com/dinwwwh
dinwwwhhttps://github.com/dinwwwh
on May 10, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2868233087
https://github.com/franciscohermida
franciscohermidahttps://github.com/franciscohermida
on May 11, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2869331337
https://github.com/theoludwig
theoludwighttps://github.com/theoludwig
on May 11, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2869681469
https://github.com/tresorama
tresoramahttps://github.com/tresorama
on May 29, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2920089984
@theoludwighttps://github.com/theoludwig
https://github.com/theoludwig
theoludwighttps://github.com/theoludwig
on May 29, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2920253948
@theoludwighttps://github.com/theoludwig
@tresoramahttps://github.com/tresorama
https://github.com/tresorama
tresoramahttps://github.com/tresorama
on May 29, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2920282430
https://github.com/JSteunou
JSteunouhttps://github.com/JSteunou
on Jun 2, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-2929406826
https://github.com/dinwwwh
dinwwwhhttps://github.com/dinwwwh
on Jun 26, 2025https://github.com/middleapi/orpc/issues/482#issuecomment-3007814012
https://orpc.unnoq.com/docs/advanced/extend-body-parserhttps://orpc.unnoq.com/docs/advanced/extend-body-parser
dinwwwhhttps://github.com/dinwwwh
enhancementNew feature or requesthttps://github.com/middleapi/orpc/issues?q=state%3Aopen%20label%3A%22enhancement%22
on Aug 16, 2025https://github.com/middleapi/orpc/issues/482#event-19186550761
https://github.com/francisco-barros-codes
francisco-barros-codeshttps://github.com/francisco-barros-codes
on Jul 22, 2026https://github.com/middleapi/orpc/issues/482#issuecomment-5044828402
https://github.com/dinwwwh
dinwwwhhttps://github.com/dinwwwh
on Jul 22, 2026https://github.com/middleapi/orpc/issues/482#issuecomment-5045347035
@JSteunouhttps://github.com/JSteunou
https://github.com/dinwwwh
dinwwwhhttps://github.com/dinwwwh
on Aug 15, 2026https://github.com/middleapi/orpc/issues/482#issuecomment-5301186079
Sign up for freehttps://github.com/signup?return_to=https://github.com/middleapi/orpc/issues/482
Sign in to commenthttps://github.com/login?return_to=https://github.com/middleapi/orpc/issues/482
enhancementNew feature or requesthttps://github.com/middleapi/orpc/issues?q=state%3Aopen%20label%3A%22enhancement%22
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.