# Marrow [![maven-releases-badge](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fmaven.is-immensely.gay%2Freleases%2Fxyz%2Fnaomieow%2Fmarrow%2Fmaven-metadata.xml&label=maven%20releases&logo=Kotlin&style=for-the-badge)](https://maven.is-immensely.gay/#/releases/xyz/naomieow/marrow) [![maven-nightly-badge](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fmaven.is-immensely.gay%2Fnightly%2Fxyz%2Fnaomieow%2Fmarrow%2Fmaven-metadata.xml&label=maven%20nightly&logo=Kotlin&style=for-the-badge)](https://maven.is-immensely.gay/#/nightly/xyz/naomieow/marrow) [![modrinth-badge](https://img.shields.io/modrinth/dt/marrow?label=Modrinth&logo=modrinth&style=for-the-badge)](https://modrinth.com/mod/marrow) [![curseforge-badge](https://img.shields.io/curseforge/dt/1307965?label=Curseforge&logo=curseforge&style=for-the-badge)](https://legacy.curseforge.com/minecraft/mc-mods/marrow) Minecraft mod that bundles [Arrow](https://arrow-kt.io) for ease-of-use and installation. ## Usage Simply add it as a dependency to your Gradle project like so:
Groovy ```groovy repositories { mavenCentral() maven { name = 'Gay Maven' url = 'https://maven.is-immensely.gay/nightly' } } dependencies { def variantAttribute = Attribute.of('earth.terrarium.cloche.modLoader', String) // or modImplementation implementation('xyz.naomieow:marrow:2.1.2') { attributes { // "fabric" for fabric // "forge" for forge // "neoforge" for neoforge attribute variantAttribute, 'fabric' } } } ```
Kotlin DSL ```kts repositories { mavenCentral() maven("https://maven.is-immensely.gay/nightly") } dependencies { val variantAttribute = Attribute.of("earth.terrarium.cloche.modLoader", String::class.java) // or modImplementation implementation("xyz.naomieow:marrow:2.1.2") { attributes { // "fabric" for fabric // "forge" for forge // "neoforge" for neoforge attribute(variantAttribute, "fabric") } } } ```
Kotlin DSL (Cloche) ```kts repositories { mavenCentral() maven("https://maven.is-immensely.gay/nightly") } common { dependencies { modImplementation("xyz.naomieow:marrow:2.1.2") } } ```
And then you should have access to Arrow in your project: ```kt val example: Either = Either.Left("Hello world!") ``` ## Versioning Marrow tracks the upstream version of Arrow, which is why the initial release is tagged as version `2.1.2`. If you ever find Marrow to be outdated, please create an issue or contact me on [Discord](https://chat.lesbian.skin). ## Bundled Libraries - `io.arrow-kt:arrow-core` - `io.arrow-kt:arrow-core-serialization` - `io.arrow-kt:arrow-fx-coroutines` - `io.arrow-kt:arrow-fx-stm` - `io.arrow-kt:arrow-annotations` - `io.arrow-kt:arrow-atomic` - `io.arrow-kt:arrow-collectors` - `io.arrow-kt:arrow-optics` - `io.arrow-kt:arrow-resilience` - `io.arrow-kt:arrow-autoclose` - `io.arrow-kt:arrow-eval` - `io.arrow-kt:arrow-functions`