{"id":49077,"library":"react-native-nitro-fetch","title":"Nitro Fetch","description":"A high-performance fetch implementation for React Native using Nitro Modules, providing native-level networking capabilities with support for streaming, cancellation, and progress events. Version 1.3.3 is current as of late 2025. It is actively maintained by the Margelo team, with a release cadence of approximately every 2-3 months. Key differentiators include direct integration with Nitro Modules for synchronous native calls, worklets for background processing, and full TypeScript support.","status":"active","version":"1.3.3","language":"javascript","source_language":"en","source_url":"https://github.com/margelo/react-native-nitro-fetch","tags":["javascript","react-native","ios","android","typescript"],"install":[{"cmd":"npm install react-native-nitro-fetch","lang":"bash","label":"npm"},{"cmd":"yarn add react-native-nitro-fetch","lang":"bash","label":"yarn"},{"cmd":"pnpm add react-native-nitro-fetch","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Provides the underlying Nitro module infrastructure for synchronous native calls.","package":"react-native-nitro-modules","optional":false},{"reason":"Enables running fetch operations on a background thread without blocking the UI.","package":"react-native-worklets","optional":false},{"reason":"Required peer dependency for React Native projects.","package":"react-native","optional":false},{"reason":"Required peer dependency for React.","package":"react","optional":false}],"imports":[{"note":"ESM-only; CJS require may work but is not officially supported.","wrong":"const NitroFetch = require('react-native-nitro-fetch')","symbol":"NitroFetch","correct":"import { NitroFetch } from 'react-native-nitro-fetch'"},{"note":"TypeScript type import for response objects.","symbol":"NitroFetchResponse","correct":"import { NitroFetchResponse } from 'react-native-nitro-fetch'"},{"note":"Type for request configuration objects.","symbol":"NitroFetchRequest","correct":"import { NitroFetchRequest } from 'react-native-nitro-fetch'"}],"quickstart":{"code":"import { NitroFetch } from 'react-native-nitro-fetch';\n\nconst fetcher = new NitroFetch();\n\nasync function fetchData() {\n  try {\n    const response = await fetcher.request('https://api.example.com/data', {\n      method: 'GET',\n      headers: { 'Authorization': `Bearer ${process.env.API_KEY ?? ''}` },\n      timeoutMs: 5000,\n    });\n    console.log('Status:', response.status);\n    console.log('Data:', await response.text());\n  } catch (error) {\n    console.error('Fetch error:', error);\n  }\n}\n\nfetchData();","lang":"typescript","description":"Shows basic usage of NitroFetch to make a GET request with authorization header, timeout, and error handling."},"warnings":[{"fix":"Update react-native-nitro-modules to >=0.35.2.","message":"Minimum Nitro Modules version 0.35.2 required; older versions will cause runtime errors.","severity":"breaking","affected_versions":"<1.3.0"},{"fix":"Update react-native-worklets to >=0.8.0.","message":"Worklets peer dependency must be >=0.8.0; otherwise background operations fail.","severity":"breaking","affected_versions":"<1.3.0"},{"fix":"Replace NitroFetch.get(...) with new NitroFetch().request(...).","message":"The static method NitroFetch.get() is deprecated in favor of instance method request().","severity":"deprecated","affected_versions":">=1.2.0 <1.3.0"},{"fix":"Set timeoutMs in the request options to abort after a period.","message":"Cancellation via AbortController is not supported; use timeoutMs option instead.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'-3':53 '1.3.3':30 '2':52 '2025':36 'activ':39 'android':80 'approxim':50 'background':69 'cadenc':48 'call':66 'cancel':25 'capabl':20 'current':32 'differenti':56 'direct':58 'event':28 'everi':51 'fetch':2,7 'full':72 'high':5 'high-perform':4 'implement':8 'includ':57 'integr':59 'io':79 'javascript':75 'key':55 'late':35 'level':18 'maintain':40 'margelo':43 'modul':14,62 'month':54 'nativ':11,17,65,78 'native-level':16 'network':19 'nitro':1,13,61 'perform':6 'process':70 'progress':27 'provid':15 'react':10,77 'react-nat':76 'releas':47 'stream':24 'support':22,74 'synchron':64 'team':44 'typescript':73,81 'use':12 'version':29 'worklet':67","created_at":"2026-06-07T16:59:56.117126+00:00","updated_at":"2026-06-07T16:59:56.117126+00:00","problems":[{"fix":"Ensure react-native-nitro-modules is correctly installed and linked. Run npx pod-install on iOS.","cause":"Nitro Modules not properly linked or version mismatch.","error":"Invariant Violation: TurboModuleRegistry: 'NitroFetch' is not available"},{"fix":"Use import { NitroFetch } from 'react-native-nitro-fetch'.","cause":"Used default import instead of named import.","error":"TypeError: (0, _reactNativeNitroFetch.NitroFetch) is not a constructor"},{"fix":"Install react-native-worklets: npm install react-native-worklets","cause":"Missing worklets peer dependency.","error":"Error: Worklets module not found. Make sure react-native-worklets is installed."},{"fix":"Import NitroFetchResponse explicitly: import { NitroFetchResponse } from 'react-native-nitro-fetch'.","cause":"Missing TypeScript import for response type.","error":"Type 'NitroFetchResponse' is not assignable to type 'any'."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/margelo/react-native-nitro-fetch#readme","github":"https://github.com/margelo/react-native-nitro-fetch","docs":null,"changelog":null,"pypi":null,"npm":"react-native-nitro-fetch","openapi_spec":null,"status_page":null,"smithery":null,"categories":["networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}