Skip to content

A high-performance, cross-platform Base64 encoding/decoding module for React Native, powered by C++ and simdutf. Implements WHATWG forgiving-base64 and supports both standard and URL-safe variants.

License

Notifications You must be signed in to change notification settings

chanphiromsok/react-native-nitro-base64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NitroBase64

A high-performance, cross-platform Base64 encoding/decoding module for React Native, powered by C++ and simdutf. Implements WHATWG forgiving-base64 and supports both standard and URL-safe variants.

iPhone Android
iPhone Android

Features

  • Fast C++ implementation using simdutf
  • WHATWG forgiving-base64 compliance (removes whitespace, optional padding)
  • Supports both standard and URL-safe base64
  • Consistent API for iOS and Android
  • Detailed error handling

Installation

yarn add react-native-nitro-base64
yarn add [email protected]

Linking

This module uses react-native-nitro-modules. Follow Nitro's setup instructions for autolinking and native builds.

API

export interface NitroBase64 extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
  install(): void;
  encode(input: string, urlSafe: boolean): string;
  decode(base64: string, urlSafe: boolean): string;
}
  • install(): void — Initializes the native module for faster first-time encoding/decoding. Call this early in your app lifecycle via index.js or root
  • encode(input: string, urlSafe: boolean): string — Encodes binary data to base64. Set urlSafe to true for base64url encoding.
  • decode(base64: string, urlSafe: boolean): string — Decodes base64 (WHATWG forgiving) to binary. Set urlSafe to true for base64url decoding.

Usage

index.js
import { install } from 'react-native-nitro-base64';
import { AppRegistry } from 'react-native';
import { install } from 'react-native-nitro-base64';
import { name as appName } from './app.json';
import App from './src/App';
install(); // <=== Call
AppRegistry.registerComponent(appName, () => App);



```typescript
import { encode,decode } from 'react-native-nitro-base64';

const encoded = encode('Hello World!', false); // "SGVsbG8gV29ybGQh"
const urlEncoded = encode('Hello World!', true); // "SGVsbG8gV29ybGQh"

const decoded = decode(encoded, false); // "Hello World!"
const urlDecoded = decode(urlEncoded, true); // "Hello World!"

Platform Support

  • iOS: C++ implementation via simdutf
  • Android: C++ implementation via simdutf

Error Handling

Throws descriptive errors for invalid base64 input, remainder issues, or extra bits in padding.

License

MIT

Credits

About

A high-performance, cross-platform Base64 encoding/decoding module for React Native, powered by C++ and simdutf. Implements WHATWG forgiving-base64 and supports both standard and URL-safe variants.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published