Performant React Native image component. Powered by Nuke and Coil
- Memory cache, aggressive LRU disk cache and HTTP disk cache
- Image Processing & Decompression (borderRadius, rounded, blur, monochrome, tint and resize)
- Written in TypeScript, Swift and Kotlin
- Support SVG and Gif
npm install react-native-turbo-image
cd ios && pod install
import TurboImage from 'react-native-turbo-image';
// ...
<TurboImage
src={url}
style={{ width: 200, height: 200 }}
cachePolicy="dataCache"
blurhash="UCHx4#R3Si.8I^M{NGkCZLRkRPIA~qNGxtj["
/>;
The URL of the image
The style of the image
The blurhash of the image to show while loading, generated by blurh.sh
The cache policy of the image
-
memory
: LRU memory cache for processed images. set by default -
dataCache
: aggressive LRU disk cache -
urlCache
: HTTP disk cache, respect cache-control
The resize mode of the image, default value contain
contain
cover
stretch
center
show the indicator when loading, default value medium
. It does not work with blurhash
medium
large
Show the blur placeholder image in the case of a failure.
The transition duration of the image. default value: 0.3(iOS) / 0.1(Android)
The border radius added to the image
Round the image into a circle
The blur radius of the blur filter added to the image
The color applied to the image.
note: For iOS and Android Q+, it works with any color. For Android Q-, it only supports grayscale.
Scales an image to the given width preserving aspect ratio
The color is applied to every non-transparent pixel, causing the image’s shape to adopt that color. This effect is not applied to placeholders.
The function to call when the image is fetching
The function to call when the image is successfully loaded
The function to call when the request failed
The function to call when the request is completed
TurboImage.prefetch([
'https://placedog.net/300/300?id=122',
'https://placedog.net/300/300?id=123',
'https://placedog.net/300/300?id=124',
'https://placedog.net/300/300?id=125',
'https://placedog.net/300/300?id=126',
]);
await TurboImage.clearMemoryCache();
await TurboImage.clearDiskCache();
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT