layout | title | permalink |
---|---|---|
quickstart-core |
Core |
/core/ |
Arrow Core includes types such as [Either
]({{ '/apidocs/arrow-core/arrow.core/-either/' |
relative_url }}), [Validated
]({{ '/apidocs/arrow-core/arrow.core/-validated/' | relative_url }})
and many extensions to [Iterable
]({{ '/apidocs/arrow-core/arrow.core/index.html#functions' |
relative_url }}) that can be used when implementing [error handling patterns]({{ '
/patterns/error_handling/' | relative_url }}).
Core also includes the base continuation effects system, which includes patterns to remove callbacks and enables controlled effects in direct syntax. Some applications of the effect system reduce boilerplate and enable direct syntax including [monad comprehensions and computation expressions]( {{ '/patterns/monad_comprehensions/' | relative_url }}).
{: .setup-subtitle} Configure Arrow for your project
Make sure to have the latest version of JDK 1.8 installed.
Arrow supports Android starting on API 21 and up.
In your project's root build.gradle.kts
, append this repository to your list:
allprojects {
repositories {
mavenCentral()
}
}
Add the dependencies into the project's build.gradle.kts
:
dependencies {
implementation("io.arrow-kt:arrow-core:1.0.1")
}
To avoid specifying the Arrow version for every dependency, a BOM file is available:
dependencies {
implementation(platform("io.arrow-kt:arrow-stack:1.0.1"))
implementation("io.arrow-kt:arrow-core")
...
}
If you want to try the latest features, replace 1.0.1
with 1.0.2-SNAPSHOT
and add this
configuration:
allprojects {
repositories {
...
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/")
}
// To use latest artifacts
configurations.all { resolutionStrategy.cacheChangingModulesFor(0, "seconds") }
}
In your project's root build.gradle
, append this repository to your list:
allprojects {
repositories {
mavenCentral()
}
}
Add the dependencies into the project's build.gradle
:
def arrow_version = "1.0.1"
dependencies {
implementation "io.arrow-kt:arrow-core:$arrow_version"
}
To avoid specifying the Arrow version for every dependency, a BOM file is available:
def arrow_version = "1.0.1"
dependencies {
implementation platform("io.arrow-kt:arrow-stack:$arrow_version")
implementation "io.arrow-kt:arrow-core"
...
}
If you want to try the latest features, replace 1.0.1
with 1.0.2-SNAPSHOT
and add this
configuration:
allprojects {
repositories {
...
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
// To use latest artifacts
configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' }
}
Make sure to have at least the latest version of JDK 1.8 installed. Add to your pom.xml file the following properties:
<properties>
<kotlin.version>1.5.31</kotlin.version>
<arrow.version>1.0.1</arrow.version>
</properties>
Add the dependencies that you want to use:
<dependency>
<groupId>io.arrow-kt</groupId>
<artifactId>arrow-core</artifactId>
<version>${arrow.version}</version>
</dependency>
To avoid specifying the Arrow version for every dependency, a BOM file is available:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.arrow-kt</groupId>
<artifactId>arrow-stack</artifactId>
<version>${arrow.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement><dependencies>
...
</dependencies>
If you want to try the latest features, replace 1.0.1
with 1.0.2-SNAPSHOT
and add this
configuration:
<repository>
<snapshotss>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>