react-native-community / fetch

A fetch API polyfill for React Native with text streaming support.
MIT License
79 stars 11 forks source link

Technical planning and discussion #4

Open acostalima opened 4 years ago

acostalima commented 4 years ago

@cpojer I'm reaching out to follow up on a previous discussion about coming up with a custom Fetch API implementation for React Native at https://github.com/react-native-community/fetch with support for streaming (https://github.com/facebook/react-native/issues/27741). We, MOXY and Protocol Labs, are planning to start this effort shortly and we'd like to know your thoughts on the matter.

In short, what we currently have in mind is as follows:

Even if Facebook has no plans to add support for streaming to Fetch for the time being, app developers can easily swap out whatwg-fetch for @react-native-community/fetch manually. Even better would be React Native to do this automatically via some sort of extension or plugin API.

Are there any guidelines which React Native Community packages should conform to? e.g. linter and linting config, CI process config, etc.

CC @satazor @hugomrdias

hugomrdias commented 4 years ago

/cc @autonome

cpojer commented 4 years ago

I think this plan sounds good. If your rewrite does not increase bundle size, we can even consider swapping out whatwg-fetch with the new version.

tex0l commented 4 years ago

I'd be very interested in a stable fetch polyfill that handles streams. By the way, I'm currently considering using https://github.com/joltup/rn-fetch-blob#drop-in-fetch-replacement, I'll debrief you of how it works.

acostalima commented 4 years ago

@cpojer Could you please give me permissions to maintain the repo? Thanks!

acostalima commented 4 years ago

@tex0l Thanks! I wasn't aware rn-fetch-blob had a drop-in fetch replacement. That project looks interesting although its complexity is much superior than what we're trying to achieve here considering its has a strong native component. In our case, we're still going to be limited to text streaming as RN's networking layer cannot stream binary.

cpojer commented 4 years ago

@cpojer Could you please give me permissions to maintain the repo? Thanks!

Done!

acostalima commented 3 years ago

@cpojer I'm not being able to publish the package under react-native-community's organization. Can you give me such permission?

acostalima commented 3 years ago

Ping @cpojer.

acostalima commented 3 years ago

@alloy Can you help? 🙏

alloy commented 3 years ago

Paging @Titozzz re moving packages out of the RNC namespace. What's the goal wrt new packages, can they still publish under the org name or should they publish to their own namespace?

Titozzz commented 3 years ago

Everyone is moving out of the RNC Scope so yeah it should be published under its own name

acostalima commented 3 years ago

@Titozzz got it, thanks! I assume react-native-fetch or similar is the way to go?

acostalima commented 3 years ago

Published as react-native-fetch-api 🎉

RobertWHurst commented 1 year ago

@acostalima Did you manage to the the time to fix the Android issue? As I understand it your solution does not work on android devices currently. Thank you for the hard work you put into making it.

I feel like the React team should be supporting this. It is rather important and it seems like a lot of libraries have had to work around this often by having to drop to native code which is extremely painful because it means that rather than allowing users to use already published and maintained libraries they need to make special one off ones for React Native.

Regardless of what is popular for features this seems like a rather important problem to the platform at a fundamental level. It should be worked on so we don't need to duplicate libraries that do a bit more than simple HTTP requests.