MCPcopy Create free account
hub / github.com/craftzdog/react-native-quick-base64

github.com/craftzdog/react-native-quick-base64 @v3.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.0 ↗ · + Follow
279 symbols 711 edges 34 files 37 documented · 13% updated 6d agov3.0.1 · 2026-07-08★ 4628 open issues

Browse by type

Functions 256 Types & classes 23
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

react-native-quick-base64

A blazing fast, native Base64 implementation for React Native using C++ and JSI.

This library is ~30x faster than base64-js. Try the benchmarks in the example app.

benchmark


Features

  • ⚡ Native C++/JSI implementation for maximum performance
  • 🧠 Automatically installs its JSI bindings at runtime
  • 🧩 Drop-in replacement for base64-js with matching API
  • 🔒 No additional native setup or linking required

Installation

npm install react-native-quick-base64

This module installs its native bindings automatically. Simply importing the library is enough to activate the native backend. Add it to your root entry point file or your first _layout.tsx.

import 'react-native-quick-base64' // triggers native JSI install to global namespace

You can also import individual helpers:

import { fromByteArray, toByteArray } from 'react-native-quick-base64'

Usage

import { fromByteArray, toByteArray } from 'react-native-quick-base64'

const base64 = fromByteArray(new TextEncoder().encode('foo'))
const decoded = new TextDecoder().decode(toByteArray(base64))

API

Compatible with base64-js.

byteLength(b64: string): number

Returns the length of the byte array that corresponds to the base64 string.

toByteArray(b64: string, removeLinebreaks: boolean = false): Uint8Array

Converts a base64 string into a Uint8Array. If removeLinebreaks is true, all \n characters are removed first.

fromByteArray(uint8: Uint8Array, urlSafe: boolean = false): string

Converts a byte array into a base64 string. If urlSafe is true, the output uses a URL-safe base64 charset.

trimBase64Padding(str: string): string

Removes trailing = or . padding from base64 or base64url-encoded strings.

[!NOTE] Breaking change (#53): The btoa, atob, and shim() polyfills have been removed. Recent versions of Hermes provide btoa and atob natively in the JS runtime, so the polyfills are no longer needed. If you need string ⇄ base64 conversion, use TextEncoder / TextDecoder together with fromByteArray / toByteArray (see Usage below).


Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.


License

MIT © Takuya Matsuyama

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 211
Method 45
Class 16
Enum 6
Interface 1

Languages

C++87%
TypeScript11%
Kotlin2%

Modules by API surface

cpp/simdutf.h234 symbols
cpp/QuickBase64Impl.cpp8 symbols
example/src/Benchmarks.tsx6 symbols
src/index.ts5 symbols
src/NativeQuickBase64.ts3 symbols
example/src/useRunTests.ts3 symbols
example/src/MochaRNAdapter.ts3 symbols
example/android/app/src/main/java/quickbase64/example/MainActivity.kt3 symbols
example/src/useTestList.ts2 symbols
example/src/tests/util.ts2 symbols
example/src/App.tsx2 symbols
example/android/app/src/main/java/quickbase64/example/MainApplication.kt2 symbols

For agents

$ claude mcp add react-native-quick-base64 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page