# Nitro Modules > A framework for building fast, type-safe native modules for React Native with statically compiled JSI bindings. This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [What is Nitro?](https://nitro.margelo.com/docs/getting-started/what-is-nitro.md): Learn what React Native Nitro Modules are and how Nitro uses JSI, C++, Swift, Kotlin, and Nitrogen to build fast type-safe native modules. - [Nitro Modules](https://nitro.margelo.com/docs/concepts/nitro-modules.md): Understand Nitro Modules, the React Native library structure for type-safe native modules backed by Hybrid Objects and statically compiled JSI bind... - [Hybrid Objects](https://nitro.margelo.com/docs/concepts/hybrid-objects.md): Learn how Nitro Hybrid Objects expose native C++, Swift, and Kotlin implementations to JavaScript with methods, properties, and type-safe bindings. - [Hybrid Views](https://nitro.margelo.com/docs/concepts/hybrid-views.md): Learn how Nitro Hybrid Views render native view components in React Native while keeping Hybrid Object state and type-safe native bindings. - [Nitrogen](https://nitro.margelo.com/docs/concepts/nitrogen.md): Learn how Nitrogen generates C++, Swift, and Kotlin bindings from TypeScript specs for React Native Nitro Modules. - [Nitro Typing System](https://nitro.margelo.com/docs/types/typing-system.md): Understand Nitro's static, type-safe, and null-safe conversion system for JavaScript, C++, Swift, and Kotlin native module types. - [Minimum Requirements](https://nitro.margelo.com/docs/getting-started/minimum-requirements.md): Check the React Native, iOS, Android, Swift, Kotlin, Gradle, and C++ requirements needed to use Nitro Modules. - [How to build a Nitro Module](https://nitro.margelo.com/docs/getting-started/how-to-build-a-nitro-module.md): Build a React Native Nitro Module from scratch with TypeScript specs, Nitrogen code generation, C++, Swift or Kotlin implementations, and package s... - [Configuration (nitro.json)](https://nitro.margelo.com/docs/getting-started/configuration-nitro-json.md): Configure nitro.json for a React Native Nitro Module, including C++ namespace, iOS module name, Android package, and code generation paths. - [Android `Context`](https://nitro.margelo.com/docs/guides/android-context.md): Many Android APIs require a [`Context`](https://developer.android.com/reference/android/content/Context) object, which allows access to application... - [Entry Point](https://nitro.margelo.com/docs/guides/entry-point.md): Nitro is built on top of JSI - while the primary target is React Native, Nitro even works on any other target that provides JSI. - [Errors](https://nitro.margelo.com/docs/guides/errors.md): Every method in a [Hybrid Object](../concepts/hybrid-objects) can throw an error using the language-default error throwing feature: - [Performance Tips](https://nitro.margelo.com/docs/guides/performance-tips.md): Improve Nitro Module performance by choosing static types, efficient Hybrid Object APIs, and lower-overhead native binding patterns. - [Running the Example app](https://nitro.margelo.com/docs/guides/running-example-app.md): This guide will help you understand the Nitro Example app's role, and teach you how to run it both in debug and in release. - [Sync vs Async](https://nitro.margelo.com/docs/guides/sync-vs-async.md): By default, every method on a [Hybrid Object](../concepts/hybrid-objects) is synchronous and runs on the JS Thread. - [Troubleshooting](https://nitro.margelo.com/docs/guides/troubleshooting.md): Troubleshoot common Nitro Modules setup, build, codegen, iOS, Android, and native dependency issues in React Native projects. - [View Components](https://nitro.margelo.com/docs/guides/view-components.md): Nitro provides first-class support for creating React Native Views. - [Worklets/Threading](https://nitro.margelo.com/docs/guides/worklets.md): Nitro itself is fully runtime-agnostic, which means every [Hybrid Object](../concepts/hybrid-objects) can be used from any JS Runtime or Worklet Co... - [Apps using Nitro](https://nitro.margelo.com/docs/resources/apps-using-nitro.md): Production apps using React Native Nitro, shown as a public app showcase. - [Awesome Nitro Modules](https://nitro.margelo.com/docs/resources/awesome-nitro-modules.md): Libraries built with React Native Nitro Modules, including production React Native packages powered by Nitro, Nitrogen, and type-safe JSI bindings. - [Compare Nitro, Turbo Modules, Legacy Native Modules, and Expo Modules](https://nitro.margelo.com/docs/resources/comparison.md): Compare React Native Nitro Modules with Turbo Modules, Legacy Native Modules, and Expo Modules for performance, typing, and native implementation t... - [Contributing](https://nitro.margelo.com/docs/resources/contributing.md): If you encounter issues with Nitro, want to fix a bug, or reproduce a bug in the example app, you'd need to clone the repo and get it running first. - [Installation](https://nitro.margelo.com/docs/resources/for-library-users.md): Install react-native-nitro-modules in a React Native app and configure Nitro-powered libraries on iOS and Android. - [ArrayBuffers (`ArrayBuffer`)](https://nitro.margelo.com/docs/types/array-buffers.md): Array Buffers allow highly efficient access to shared raw binary data from both JS and native. - [Arrays (`T[]`)](https://nitro.margelo.com/docs/types/arrays.md): Arrays are represented with the most common and efficient native data structures, such as `std::vector` in C++ or `Array` in Swift and Kotlin. - [Callbacks (`(...) => T`)](https://nitro.margelo.com/docs/types/callbacks.md): Callbacks are functions created in one language and passed to another to provide a way to "call back" later. - [Custom Enums (`A | B`)](https://nitro.margelo.com/docs/types/custom-enums.md): There's two different types of enums - [enums](#typescript-enums) and [unions](#typescript-union). - [Custom Structs (`interface`)](https://nitro.margelo.com/docs/types/custom-structs.md): Any custom `interface` or `type` that does **not** extend `HybridObject` will be represented as a fully type-safe `struct` in C++/Swift/Kotlin. Sim... - [Custom Types (manually written `T`)](https://nitro.margelo.com/docs/types/custom-types.md): The `JSIConverter` is Nitro's implementation for converting JS values to native values, and back. - [Dates (`Date`)](https://nitro.margelo.com/docs/types/dates.md): Dates are date and time instances that can be passed between JS and native. - [Other Hybrid Objects (`HybridObject`)](https://nitro.margelo.com/docs/types/hybrid-objects.md): Since Nitro Modules are object-oriented, a `HybridObject` itself is a first-class citizen. - [Nulls (`null`)](https://nitro.margelo.com/docs/types/nulls.md): A `null` is used to refer to the intentional absence of a value. - [Optionals (`T?`)](https://nitro.margelo.com/docs/types/optionals.md): Optional or undefined values can be declared with the question mark operator (`?`) or with an `undefined` variant. - [Primitives (`number`, `boolean`, `bigint`)](https://nitro.margelo.com/docs/types/primitives.md): Primitive datatypes like `number`, `boolean` or `bigint` can use platform-native datatypes directly. - [Promises (`Promise`)](https://nitro.margelo.com/docs/types/promises.md): A function can be made asynchronous by returning a `Promise` to JS. - [Raw `jsi::Value` / `jsi::Runtime`](https://nitro.margelo.com/docs/types/raw-jsi-value.md): Even though Nitro supports virtually any JS type, there are certain use cases where you might want to work with a raw `jsi::Value` or a `jsi::Runti... - [Strings (`string`)](https://nitro.margelo.com/docs/types/strings.md): A `string` handles like a [primitive](primitives), but technically isn't one. - [Tuples (`[A, B, ...]`)](https://nitro.margelo.com/docs/types/tuples.md): A Tuple is a fixed-length set of items of the given types. Example: - [Typed maps (`Record`)](https://nitro.margelo.com/docs/types/typed-maps.md): A typed map is an object where each value is of the given type `T`. - [Untyped maps (`AnyMap` / `object`)](https://nitro.margelo.com/docs/types/untyped-maps.md): An untyped map represents a JSON-like structure with a value that can either be a `number`, a `string`, a `boolean`, an `Int64`, a `null`, an array... - [Variants (`A | B | ...`)](https://nitro.margelo.com/docs/types/variants.md): A Variant is a type of either one of the values defined in its declaration. Example: