Content deleted Content added
Bluelinking 1 books for verifiability.) #IABot (v2.1alpha3 |
|||
(32 intermediate revisions by 23 users not shown) | |||
Line 1:
{{Short description|Open-source runtime}}
{{About|the software library for application development||Akka (disambiguation){{!}}Akka}}
{{Infobox software
Line 7 ⟶ 8:
| developer = [[Lightbend_Inc.|Lightbend]]
| released = {{Start date|2009|07}}
| latest release version = 2.
| latest release date = {{release date and age|
| programming language = [[Scala (programming language)|Scala]]
| operating system = [[Cross-platform]]
| platform = [[Java Virtual Machine]]
| license =
| website = {{URL|akka.io}}
}}
'''Akka''' is a [[
Language bindings exist for both [[Java (programming language)|Java]] and [[Scala (programming language)|Scala]]. Akka is written in Scala and, as of Scala 2.10, the actors in the Scala standard library are deprecated in favor of Akka.<ref>{{cite web|last=
==History==
An actor implementation, written by Philipp Haller, was released in July 2006 as part of Scala 2.1.7.<ref>{{cite web|url=http://www.scala-lang.org/node/156 |title=Scala Version History - Older versions |publisher=scala-lang.org |date=2009-02-16 |url-status=dead |archiveurl=https://web.archive.org/web/20130104213121/http://www.scala-lang.org/node/156 |archivedate=2013-01-04 }}</ref> By 2008 Scala was attracting attention for use in complex server applications, but concurrency was still typically achieved by creating threads that shared memory and synchronized when necessary using locks. Aware of the difficulties with that approach and inspired by the [[Erlang (programming language)|Erlang]] programming language's library support for writing highly concurrent, event-driven applications, the Swedish programmer [http://jonasboner.com/ Jonas Bonér] created Akka to bring similar capabilities to Scala and Java. Bonér began working on Akka in early 2009<ref>{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/commit/0a31ad718883ef0314de6dc8c6c2c9699eadfdae |title=init project setup |publisher=github.com |date=2009-02-16}}</ref> and wrote up his vision for it in June of that year.<ref name="Initial email describing vision for Akka">{{cite web|last=Bonér|first=Jonas|title=Akka Actor Kernel|url=http://permalink.gmane.org/gmane.comp.lang.scala/16486|[email protected]|archive-url=https://web.archive.org/web/20160304071350/http://permalink.gmane.org/gmane.comp.lang.scala/16486|archive-date=2016-03-04|access-date=2017-07-13|url-status=dead}}</ref> The first public release was Akka 0.5,<ref>{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/tree/v0.5 |title=v0.5 |publisher=github.com |date=2009-07-12}}</ref> announced in January 2010.<ref>{{cite web|author=Jonas Bonér |url=http://jonasboner.com/introducing-akka/ |title= Introducing Akka - Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors |publisher=jonasboner.com |date=2010-01-04}}</ref> Akka is now part of the Lightbend Platform together with the [[Play Framework|Play framework]] and the [[Scala (programming language)|Scala]] programming language.
In September 2022, Lightbend announced that Akka would change its license from the [[free software|free]] [[software license]] [[Apache License|Apache License 2.0]] to a [[Proprietary software|proprietary]] [[Source-available software|source-available]] license, known as the [[Business Source License]] (BSL). Any new code under the BSL would become available under the Apache License after three years.<ref>{{cite web |last1=Bonér |first1=Jonas |title=Why We Are Changing the License for Akka |url=https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka |access-date=7 September 2022}}</ref>
==Distinguishing features==
Line 46 ⟶ 45:
*The ''eventsourced''<ref>{{cite web|title=eventsourced library|url=https://github.com/eligosource/eventsourced|publisher=eligosource|accessdate=6 June 2013}}</ref> library provides [[event-driven architecture]] (see also [[domain-driven design]]) support for Akka actors
*The [[Gatling (software)|Gatling]] stress test tool for load-testing web servers is built upon Akka<ref>{{cite web|title=Gatling stress test tool|url=https://github.com/excilys/gatling/wiki/Underlying-Technologies|publisher=github.com|accessdate=6 June 2013}}</ref>
*The [[Scalatra]] web framework
*The [[Vaadin]] web app development framework can integrate with Akka<ref>{{cite web|title=Vaadin in Akka|url=https://vaadin.com/blog/-/blogs/vaadin-in-akka|publisher=Vaadin.com|accessdate=26 April 2014}}</ref>
*The [[Apache Flink]] (platform for distributed stream and batch data processing) RPC system is built
*The [[Lagom (framework)|Lagom]] framework for building reactive microservices is implemented on top of
There are more than 250 public projects registered on [[GitHub]] which use Akka.<ref>{{cite web|last=Tasharofi|first=Samira|title=Akka actor project corpus at GitHub|url=http://actor-applications.cs.illinois.edu/akka.html|publisher=cs.illinois.edu|access-date=2013-06-06|archive-url=https://web.archive.org/web/20121030173302/http://actor-applications.cs.illinois.edu/akka.html|archive-date=2012-10-30|url-status=dead}}</ref>
==Publications about Akka==
There are several books about Akka:
*Akka Essentials<ref>{{cite book|last=Gupta|first=Munish K.|title=Akka Essentials|year=2012|publisher=Packt Publishing|isbn=
*Akka Code Examples
*Akka Concurrency<ref>{{cite book|last=Wyatt|first=Derek|title=Akka Concurrency|year=2013|publisher=Artima|isbn=
*Akka in Action, Second Edition<ref>{{cite book|last=
*
*Effective Akka<ref>{{cite book|last=Allen|first=Jamie|title=Effective Akka|year=2013|publisher=O'Reilly Media|isbn=978-1449360078|pages=74}}</ref>
*Composable Futures with Akka 2.0, Featuring Java, Scala and Akka Code Examples<ref>{{cite book|last=Slinn|first=Michael|title=Composable Futures with Akka 2.0|year=2012|publisher=Micronautics Research|isbn=978-0984278923|pages=178}}</ref> Akka also features in
*P. Haller's "Actors in Scala"<ref>{{cite book|last=Haller|first=Philipp|title=Actors in Scala|year=2012|publisher=Artima|isbn=
*N. Raychaudhuri's "Scala in Action"<ref>{{cite book|last=Raychaudhuri|first=Nilanjan|title=Scala in Action|year=2013|publisher=Manning Publications|isbn=978-1935182757|pages=416}}</ref>
*D. Wampler's "Functional Programming for Java Developers"<ref>{{cite book|last=Wampler|first=Dean|title=Functional Programming for Java Developers|url=https://archive.org/details/functionalprogra0000wamp/page/90|url-access=registration|year=2011|publisher=O'Reilly Media|isbn=978-1449311032|pages=[https://archive.org/details/functionalprogra0000wamp/page/90 90]}}</ref>
*A. Alexander's "Scala Cookbook"<ref>{{cite book|last=Alexander|first=Alvin|title=Scala Cookbook|year=2013|publisher=O'Reilly Media|isbn=
*V. Subramaniam's "Programming Concurrency on the JVM"<ref>{{cite book|last=Subramaniam|first=Venkat|title=Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors|url=https://archive.org/details/programmingconcu00subr_404|url-access=limited|year=2011|publisher=Pragmatic Bookshelf|isbn=
*M. Bernhardt's "Reactive Web Applications"<ref>{{cite book|last=Bernhardt|first=Manuel|title=Reactive Web Applications: Covers Play, Akka and Reactive Streams|year=2016|publisher=Manning Publications|isbn= 9781633430099|pages=328}}</ref>
Besides many web articles that describe the commercial use of Akka,<ref>{{cite web|last=Darrow|first=Barb|title=Juniper networks signs on with Scala|date=25 June 2012|url=http://gigaom.com/2012/06/25/typesafe-pushes-scala-as-top-language-juniper-apparently-agrees/|publisher=gigaom.com|accessdate=8 June 2013|archive-date=2 June 2013|archive-url=https://web.archive.org/web/20130602054236/http://gigaom.com/2012/06/25/typesafe-pushes-scala-as-top-language-juniper-apparently-agrees/|url-status=dead}}</ref><ref>{{cite web|last=Ross|first=David|title=Scaling the Klout API with Scala, Akka and Play|url=http://corp.klout.com/blog/2012/10/scaling-the-klout-api-with-scala-akka-and-play/|accessdate=8 June 2013}}</ref>
there are also overview articles about it.<ref>{{cite web |
==References==
Line 80 ⟶ 77:
[[Category:Java platform]]
[[Category:Software development kits]]
[[Category:Java development tools]]
[[Category:Actor model (computer science)]]
[[Category:Software using the Business Source License]]
|