Getting Started - Version 2.5-SNAPSHOT

Getting Started

Prerequisites

Akka requires that you have Java 8 or later installed on your machine.

Lightbend Inc. provides a commercial build of Akka and related projects such as Scala or Play as part of the Lightbend Reactive Platform which is made available for Java 6 in case your project can not upgrade to Java 8 just yet. It also includes additional commercial features or libraries.

Download

There are several ways to download Akka. You can download it as part of the Lightbend Platform (as described above). You can download the full distribution, which includes all modules. Or you can use a build tool like Maven or SBT to download dependencies from the Akka Maven repository.

Modules

Akka is very modular and consists of several JARs containing different features.

  • akka-actor – Classic Actors, Typed Actors, IO Actor etc.
  • akka-agent – Agents, integrated with Scala STM
  • akka-camel – Apache Camel integration
  • akka-cluster – Cluster membership management, elastic routers.
  • akka-cluster-sharding – Cluster Sharding of actors.
  • akka-cluster-tools – Additoinal Cluster utilities, such as Singleton, Pub/Sub and Client.
  • akka-distributed-data – Cluster data with CRDTs.
  • akka-osgi – Utilities for using Akka in OSGi containers
  • akka-osgi-aries – Aries blueprint for provisioning actor systems
  • akka-remote – Remote Actors
  • akka-slf4j – SLF4J Logger (event bus listener)
  • akka-stream – Reactive stream processing
  • akka-testkit – Toolkit for testing Actor systems

In addition to these stable modules there are several which are on their way into the stable core but are still marked may change at this point. This does not mean that they do not function as intended, it primarily means that their API has not yet solidified enough in order to be considered frozen. You can help accelerating this process by giving feedback on these modules on our mailing list.

  • akka-contrib – an assortment of contributions which may or may not be moved into core modules, see External Contributions for more details.

The filename of the actual JAR is for example akka-actor_2.12-2.5-SNAPSHOT.jar (and analog for the other modules).

How to see the JARs dependencies of each Akka module is described in the Dependencies section.

Using a release distribution

Download the release you need from http://akka.io/downloads and unzip it.

Using a snapshot version

The Akka nightly snapshots are published to http://repo.akka.io/snapshots/ and are versioned with both SNAPSHOT and timestamps. You can choose a timestamped version to work with and can decide when to update to a newer version.

Warning

The use of Akka SNAPSHOTs, nightlies and milestone releases is discouraged unless you know what you are doing.

Using a build tool

Akka can be used with build tools that support Maven repositories.

Maven repositories

For Akka version 2.1-M2 and onwards:

Maven Central

For previous Akka versions:

Akka Repo

Using Akka with Maven

The simplest way to get started with Akka and Maven is to download the ready to run sample named Akka Main in Java.

Since Akka is published to Maven Central (for versions since 2.1-M2), it is enough to add the Akka dependencies to the POM. For example, here is the dependency for akka-actor:

<dependency>
  <groupId>com.typesafe.akka</groupId>
  <artifactId>akka-actor_2.12</artifactId>
  <version>2.5-SNAPSHOT</version>
</dependency>

For snapshot versions, the snapshot repository needs to be added as well:

<repositories>
  <repository>
    <id>akka-snapshots</id>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    <url>http://repo.akka.io/snapshots/</url>
  </repository>
</repositories>

Note: for snapshot versions both SNAPSHOT and timestamped versions are published.

Using Akka with SBT

The simplest way to get started with Akka and SBT is to use a Gitter8 template named Hello Akka!. If you have sbt already installed, you can create a project from this template by running:

sbt new akka/hello-akka.g8

Summary of the essential parts for using Akka with SBT:

SBT installation instructions on http://www.scala-sbt.org/release/tutorial/Setup.html

build.sbt file:

name := "My Project"

version := "1.0"

scalaVersion := "2.12.1"

libraryDependencies +=
  "com.typesafe.akka" %% "akka-actor" % "2.5-SNAPSHOT"

Note: the libraryDependencies setting above is specific to SBT v0.12.x and higher. If you are using an older version of SBT, the libraryDependencies should look like this:

libraryDependencies +=
  "com.typesafe.akka" % "akka-actor_2.12" % "2.5-SNAPSHOT"

For snapshot versions, the snapshot repository needs to be added as well:

resolvers += "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/"

Using Akka with Gradle

Requires at least Gradle 1.4 Uses the Scala plugin

apply plugin: 'scala'

repositories {
  mavenCentral()
}

dependencies {
  compile 'org.scala-lang:scala-library:2.12.1'
}

tasks.withType(ScalaCompile) {
  scalaCompileOptions.useAnt = false
}

dependencies {
  compile group: 'com.typesafe.akka', name: 'akka-actor_2.12', version: '2.5-SNAPSHOT'
  compile group: 'org.scala-lang', name: 'scala-library', version: '2.12.1'
}

For snapshot versions, the snapshot repository needs to be added as well:

repositories {
  mavenCentral()
  maven {
    url "http://repo.akka.io/snapshots/"
  }
}

Using Akka with Eclipse

Setup SBT project and then use sbteclipse to generate an Eclipse project.

Using Akka with IntelliJ IDEA

Setup SBT project and then use sbt-idea to generate an IntelliJ IDEA project.

Using Akka with NetBeans

Setup SBT project and then use nbsbt to generate a NetBeans project.

You should also use nbscala for general scala support in the IDE.

Do not use -optimize Scala compiler flag

Warning

Akka has not been compiled or tested with -optimize Scala compiler flag. Strange behavior has been reported by users that have tried it.

Build from sources

Akka uses Git and is hosted at Github.

Continue reading the page on Building Akka

Need help?

If you have questions you can get help on the Akka Mailing List.

You can also ask for commercial support.

Thanks for being a part of the Akka community.

Contents