Skip to main content

Compatibility

The table below shows which versions of react-native-enriched-markdown support which React Native versions. The standalone native packages have their own sections: iOS package and Android package.

0.820.830.840.850.860.870.88
nightly
no
yes
yes
yes
yes
yes
yes
1.1.x
no
yes
yes
yes
yes
yes
yes
1.0.x
no
yes
yes
yes
yes
yes
yes
0.7.0
no
yes
yes
yes
yes
yes
yes
0.6.0
no
yes
yes
yes
no
no
no
0.5.0
no
yes
yes
yes
no
no
no
0.4.x
yes
yes
yes
no
no
no
no
0.3.0
yes
yes
yes
no
no
no
no

The nightly row is the automated build published from main every day. It is ahead of every numbered release, so treat it as a preview rather than a supported version - see Nightly builds.

Platform requirements​

The React Native package also needs these minimum platform versions:

PlatformMinimum
AndroidminSdk 24 (Android 7.0)
iOSReact Native's minimum deployment target; contextMenuItems, selectionMenuConfig and formatMenuConfig additionally require iOS 16+
macOS14.0, via react-native-macos
WebAny browser with WebAssembly; MathML rendering for LaTeX math needs Chrome 109+, Firefox, or Safari

The React Native package also requires the New Architecture (Fabric).

note

The macOS row is the deployment target, not a react-native-macos version. The library's own macOS example app is built against react-native-macos 0.81, which trails the React Native versions in the table above. See macOS support.

Dependencies​

Runtime dependenciesNone
Peer dependenciesreact, react-native (no version floor declared beyond the table above)
Optional peer dependencykatex >=0.16.0, used only by the web build to typeset LaTeX
ExpoSupported through npx expo install and a development build. The library's compile-time settings cannot apply in Expo Go. There is no config plugin - see Installation.

iOS package​

The standalone Swift package, enriched-markdown-ios, versions 0.4.0 and newer.

Deployment targetiOS 16.0
PlatformsiOS only. The package declares platforms: [.iOS(.v16)] and its sources import UIKit, so a macOS, watchOS or tvOS target cannot depend on it
Swift tools5.9 (Xcode 15 or newer)
UI frameworkSwiftUI - the package exports a View
DistributionSwift Package Manager (software-mansion-labs/enriched-markdown-ios)

It ships three products:

  • EnrichedMarkdown - the renderer.
  • EnrichedMarkdownLaTeX (optional) - adds $...$ typesetting. It links the prebuilt RaTeX engine plus the KaTeX fonts, about 3-5 MB of app size. See LaTeX math.
  • EnrichedMarkdownSyntaxHighlighting (optional) - colors fenced code blocks. It compiles tree-sitter with all its grammars, about 8 MB of app size, with no way to compile in only some languages. See Syntax highlighting.

Android package​

The standalone Android library, enriched-markdown-android, versions 0.3.0 and newer.

Min SDK24 (Android 7.0)
Compile SDK36 or newer - a floor, not a suggestion: AGP fails the build when a dependency was compiled against a newer SDK than the consumer
Java11 as the bytecode target. Running Gradle for AGP 9.x and Kotlin 2.4 needs JDK 17 (what CI uses)
Kotlin2.3 or newer, with the Compose compiler plugin. The library is built with Kotlin 2.4.0 - see Requirements
UI toolkitJetpack Compose with Material 3
AndroidXRequired

It is published to Maven Central under the com.swmansion.enriched.markdown group as five artifacts: parser, ui, compose (the one apps depend on; it pulls in ui and parser) and two optional ones that compose never pulls in:

  • math - renders LaTeX; new in 0.3.0. See LaTeX math. The math engine ships no 32-bit x86 library (arm64-v8a, armeabi-v7a and x86_64 only), so only apps that add math take on that ABI limit.
  • code-highlight - colors fenced code blocks. It compiles tree-sitter and its 14 grammars into one native library for all four ABIs (arm64-v8a, armeabi-v7a, x86 and x86_64): about 8 MB per ABI uncompressed and about 1.1 MB per ABI compressed, with no way to compile in only some languages. See Code highlighting.