Title: GitHub · Where software is built
Open Graph Title: NativeScript/NativeScript
X Title: NativeScript/NativeScript
Description: ⚡ Write Native with TypeScript ✨ Best of all worlds (TypeScript, Swift, Objective C, Kotlin, Java, Dart). Use what you love ❤️ Angular, React, Solid, Svelte, Vue with: iOS (UIKit, SwiftUI), Android (View, Jetpack Compose), Flutter and you name it compatible. - NativeScript/NativeScript
Open Graph Description: ⚡ Write Native with TypeScript ✨ Best of all worlds (TypeScript, Swift, Objective C, Kotlin, Java, Dart). Use what you love ❤️ Angular, React, Solid, Svelte, Vue with: iOS (UIKit, SwiftUI), Android...
X Description: ⚡ Write Native with TypeScript ✨ Best of all worlds (TypeScript, Swift, Objective C, Kotlin, Java, Dart). Use what you love ❤️ Angular, React, Solid, Svelte, Vue with: iOS (UIKit, SwiftUI), Android...
Opengraph URL: https://github.com/NativeScript/NativeScript
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Protobuf support","articleBody":"**Describe the solution you'd like**\r\n\r\nProtobuf based frameworks like [gRPC](https://grpc.io/) and [Twirp](https://github.com/twitchtv/twirp) (made by Twitch) are very popular because of the efficiencies gained in front-\u003ebackend handshake clarity, straightforward for teams of devs to understand and manage, and size of payload over the wire (extra appealing to mobile).\r\n\r\nUltimately the solution I'd like is to send protobuf (binary) from the [NS HTTP Framework module](https://docs.nativescript.org/ns-framework-modules/http) and be able to receive a protobuf (binary) response.\r\n\r\nMy hope is the market trend towards protobuf based technologies will give further motivation to supporting sending and receiving these (small) binary payloads.\r\n\r\n**Describe alternatives you've considered**\r\n\r\nWriting protobuf to then filesystem then sending via [nativescript-background-http](https://github.com/NativeScript/nativescript-background-http/) in the background. Not only is this super messy, it is very error prone (and hard to recover from). Not good for the mission critical path of your app interfacing with backend. \r\n\r\n**Questions for starting discussion**\r\n\r\nI know there are a few outstanding issues (see below) around supporting binary, my hope is this issue can bring them together with a solid use case (Protobuf).\r\n\r\n1. Support to accept gzip (binary) incoming payloads was added [here](https://github.com/NativeScript/NativeScript/issues/1314). Can this methodology be used to accept `application/protobuf`?\r\n1. [protobuf.js](https://github.com/protobufjs/protobuf.js) is rock solid and works in node and browser. What are the specific technical road blocks preventing it from being used in NS? In searching and looking at code I can't tell what they are (I'm green to native dev).\r\n\r\n**Additional context**\r\n\r\n- Related NS Issues: \r\n - https://github.com/NativeScript/nativescript-angular/issues/1202\r\n - https://github.com/NativeScript/NativeScript/issues/570\r\n - partial blob support in [fetch](https://github.com/NativeScript/NativeScript/blob/master/tns-core-modules/fetch/fetch.js)\r\n- My Q [posted](https://stackoverflow.com/questions/56622076/how-can-i-use-protobuf-in-nativescript) on SO.\r\n","author":{"url":"https://github.com/rynop","@type":"Person","name":"rynop"},"datePublished":"2019-08-02T14:37:48.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/7632/NativeScript/issues/7632"}
| route-pattern | /:user_id/:repository/issues/:id(.:format) |
| route-controller | issues |
| route-action | show |
| fetch-nonce | v2:99526ce7-9e49-d224-896c-a355af691cdb |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D6B8:4DECD:4161C0:51F83A:697454E6 |
| html-safe-nonce | 6401ebb94d55897e1ddfbf5d8e49cb6115d0ac876d5cc1e4548bb412b88e83c3 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENkI4OjRERUNEOjQxNjFDMDo1MUY4M0E6Njk3NDU0RTYiLCJ2aXNpdG9yX2lkIjoiNjAwNjU1NDQ4Mjk2OTk1NzYwNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 0786399043c98c04982d1e5d3f6f597430a85165801c862417bf790bfb346dff |
| hovercard-subject-tag | repository:31492490 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/NativeScript/NativeScript/issues/7632 |
| twitter:image | https://repository-images.githubusercontent.com/31492490/ae47392a-915f-4a6a-8f3b-7062e556d918 |
| twitter:card | summary_large_image |
| og:image | https://repository-images.githubusercontent.com/31492490/ae47392a-915f-4a6a-8f3b-7062e556d918 |
| og:image:alt | ⚡ Write Native with TypeScript ✨ Best of all worlds (TypeScript, Swift, Objective C, Kotlin, Java, Dart). Use what you love ❤️ Angular, React, Solid, Svelte, Vue with: iOS (UIKit, SwiftUI), Android... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | e0b95d743b7672c9ac0e1032d5f117950182dc164a83434a7db86510e8f0b37c |
| turbo-cache-control | no-cache |
| go-import | github.com/NativeScript/NativeScript git https://github.com/NativeScript/NativeScript.git |
| octolytics-dimension-user_id | 7392261 |
| octolytics-dimension-user_login | NativeScript |
| octolytics-dimension-repository_id | 31492490 |
| octolytics-dimension-repository_nwo | NativeScript/NativeScript |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 31492490 |
| octolytics-dimension-repository_network_root_nwo | NativeScript/NativeScript |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 56fe7e2e8de6e57740bca50402351ea656f7a4bf |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width