Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akkadotnet/akka.net
Canonical actor model implementation for .NET with local + distributed actors in C# and F#.
https://github.com/akkadotnet/akka.net
actor actor-model akka c-sharp cluster concurrency distributed-programming dotnet hacktoberfest reactive
Last synced: 27 days ago
JSON representation
Canonical actor model implementation for .NET with local + distributed actors in C# and F#.
- Host: GitHub
- URL: https://github.com/akkadotnet/akka.net
- Owner: akkadotnet
- License: other
- Created: 2013-12-29T14:17:38.000Z (almost 11 years ago)
- Default Branch: dev
- Last Pushed: 2024-08-06T17:34:38.000Z (3 months ago)
- Last Synced: 2024-08-07T10:50:58.293Z (3 months ago)
- Topics: actor, actor-model, akka, c-sharp, cluster, concurrency, distributed-programming, dotnet, hacktoberfest, reactive
- Language: C#
- Homepage: http://getakka.net
- Size: 87 MB
- Stars: 4,671
- Watchers: 255
- Forks: 1,041
- Open Issues: 405
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-csharp - Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community-driven port and is not affiliated with Typesafe who makes the original Java/Scala version. (Distributed Computing)
- awesome-dotnet-cn - Akka.net - Akka.NET 是流行的Java/Scala框架Akka的.NET版本,这是由社区提供的与Typesafe(原始的 Java、Scala 版本的开发商)无关。 (分布式计算)
- awesome - akka.net - Port of Akka actors for .NET (C# #)
- awesome-dotnet-core - akka.net - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. (Frameworks, Libraries and Tools / Application Frameworks)
- awesome-dotnet - Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community-driven port and is not affiliated with Typesafe who makes the original Java/Scala version. (Distributed Computing)
- awesome-actor - Akka.Net - Akka.NET is a professional-grade port of the popular Java/Scala framework Akka distributed actor framework to .NET. [getakka.net](https://getakka.net/) (Frameworks, Libraries and Tools / Application Frameworks)
- awesome-dot-dev - Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community-driven port and is not affiliated with Typesafe who makes the original Java/Scala version. (Distributed Computing)
- awsome-dotnet - Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community-driven port and is not affiliated with Typesafe who makes the original Java/Scala version. (Distributed Computing)
- fucking-awesome-dotnet-core - akka.net - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. (Frameworks, Libraries and Tools / Application Frameworks)
- awesome-dotnet-core - akka.net - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. (Frameworks, Libraries and Tools / Application Frameworks)
- awesome-dotnet - Akka.net - Akka.NET is a port of the popular Java/Scala framework Akka to .NET. This is a community-driven port and is not affiliated with Typesafe who makes the original Java/Scala version. (Distributed Computing)
- awesome-dotnet-core - akka.net - Akka是一个基于scala语言的Actor模型库,旨在构建一套高并发、分布式、自动容错、消息驱动应用的工具集。 (框架, 库和工具 / 应用程序框架)
- awesome-fsharp - Akka.NET ★ 2239 ⧗ 0 - Community-driven port of the popular Java/Scala framework Akka to .NET. [Apache 2.0] (Actor frameworks)
README
# Akka.NET
![Akka.NET logo](https://raw.githubusercontent.com/akkadotnet/akka.net/dev/docs/shfb/icons/AkkaNetLogo.Normal.png)
[![Discord](https://img.shields.io/discord/974500337396375553?style=flat&logo=discord&label=Join%20Akka.NET%20Discord)](https://discord.com/invite/GSCfPwhbWP)
[![NuGet](https://img.shields.io/nuget/v/Akka.svg?style=flat-square)](https://www.nuget.org/packages/Akka)
[![Nuget](https://img.shields.io/nuget/dt/Akka)](https://www.nuget.org/packages/Akka)**[Akka.NET](https://getakka.net/)** is a .NET port of the popular [Akka project](https://akka.io/) from the Scala / Java community. We are an idiomatic [.NET implementation of the actor model](https://petabridge.com/blog/akkadotnet-what-is-an-actor/) built on top of the .NET Common Language Runtime.
* **Website**: [https://getakka.net/](https://getakka.net/)
* **Twitter** 🐦: [AkkaDotNet](https://twitter.com/AkkaDotNet)
* **Discussions** 📣: [Akka.NET GitHub Discussions](https://github.com/akkadotnet/akka.net/discussions)
* **Chat** 💬: [Akka.NET on Discord](https://discord.gg/GSCfPwhbWP)
* **StackOverflow** ✔️: [Akka.NET on StackOverflow](https://stackoverflow.com/questions/tagged/akka.net)Akka.NET is a [.NET Foundation](https://dotnetfoundation.org/) project.
![.NET Foundation Logo](https://raw.githubusercontent.com/akkadotnet/akka.net/dev/docs/images/dotnetfoundationhorizontal.svg)
## How is Akka.NET Used?
Akka.NET can be used in-process or inside large, distributed real-time systems; we support a wide variety of use cases.
Akka.NET can be used to solve the following types of problems:
1. **Concurrency** - Akka.NET actors only process messages one-at-a-time and they do so in first in, first out (FIFO) order; this means that any application state internal to an actor is automatically thread-safe without having to use `lock`s or any other shared-memory synchronization mechanisms.
2. **Stream Processing** - Akka.NET actors and [Akka.Streams](https://getakka.net/articles/streams/introduction.html) make it easy to build streaming applications, used for processing incoming streams of data or incoming streams of live events such as UI or network events inside native applications.
3. **Event-Driven Programming** - actors make it easy to build event-driven applications, as actors' message-processing routines naturally express these types of designs.
4. **Event Sourcing and CQRS** - [Akka.Persistence](https://getakka.net/articles/persistence/architecture.html), used by actors to make their state re-entrant and recoverable across restarts or migrations between nodes, natively supports event sourcing. [Akka.Persistence.Query](https://getakka.net/articles/persistence/persistence-query.html) can be used to compute CQRS-style projections and materialized views from Akka.Persistence data.
5. **Location Transparency** - [Akka.Remote](https://getakka.net/articles/remoting/index.html) makes it simple for actors in remote processes to transparently communicate with each other.
6. **Highly Available, Fault-Tolerant Distributed Systems** - [Akka.Cluster](https://getakka.net/articles/clustering/cluster-overview.html), [Akka.Cluster.Sharding](https://getakka.net/articles/clustering/cluster-sharding.html), and other tools built on top of Akka.Cluster make it possible to build highly available and fault-tolerant distributed systems by leveraging peer-to-peer programming models with topology-aware message routing and distribution.
7. **Low Latency, High Throughput** - Akka.NET aims to be low latency and high throughput, processing 10s millions of messages per second in-memory and hundreds of thousands of messages per second over remote connections.## Where Can I Learn Akka.NET?
You can start by taking the [Akka.NET Bootcamp](https://learnakka.net/), but there are many other great [learning resources for Akka.NET Online](https://getakka.net/community/online-resources.html).
* [Petabridge's Akka.NET Videos on YouTube](https://www.youtube.com/c/PetabridgeAcademy)
* "[.NET Conf - When and How to Use the Actor Model An Introduction to Akka.NET Actors](https://www.youtube.com/watch?v=0KnIMDoJpZs)"
* _[Reactive Applications with Akka.NET](https://www.manning.com/books/reactive-applications-with-akka-net)_
* _[Akka.NET Succinctly](https://www.syncfusion.com/succinctly-free-ebooks/akka-net-succinctly)_## Build Status
| Stage | Status |
|------------------------------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Build | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=Windows%20Build)](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| NuGet Pack | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=NuGet%20Pack)](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| .NET Framework Unit Tests | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=.NET%20Framework%20Unit%20Tests%20(Windows))](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| .NET Unit Tests (Windows) | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=.NET%20Unit%20Tests%20(Windows))](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| .NET Unit Tests (Linux) | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=.NET%20Unit%20Tests%20(Linux))](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| .NET MultiNode Tests (Windows) | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=.NET%20Multi-Node%20Tests%20(Windows))](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) |
| .NET MultiNode Tests (Linux) | [![Build Status](https://dev.azure.com/dotnet/Akka.NET/_apis/build/status/akka.net/PR%20Validation?branchName=dev&jobName=.NET%20Multi-Node%20Tests%20(Windows))](https://dev.azure.com/dotnet/Akka.NET/_build/latest?definitionId=84&branchName=dev) | |
| Docs | [![Build Status](https://dev.azure.com/petabridge/akkadotnet-tools/_apis/build/status/Akka.NET%20Docs?branchName=dev)](https://dev.azure.com/petabridge/akkadotnet-tools/_build/latest?definitionId=82&branchName=dev) |## Install Akka.NET via NuGet
If you want to include Akka.NET in your project, you can [install it directly from NuGet](https://www.nuget.org/packages/Akka)
To install Akka.NET Distributed Actor Framework, run the following command in the Package Manager Console
```
PM> Install-Package Akka.Hosting
```> [Akka.Hosting](https://github.com/akkadotnet/Akka.Hosting) includes the base Akka NuGet package and also provides an easy interface to integrate Akka.NET with the most-used parts of the Microsoft.Extensions ecosystem: Configuration, Logging, Hosting, and DependencyInjection. We encourage developers to adopt it.
And if you need F# support:
```
PM> Install-Package Akka.FSharp
```### Akka.NET Project Templates
To create your own Akka.NET projects using [our templates (Akka.Templates)](https://github.com/akkadotnet/akkadotnet-templates), install them via the `dotnet` CLI:
```
dotnet new install "Akka.Templates::*"
```This will make our templates available via `dotnet new` on the CLI _and_ as new project templates inside any .NET IDE such as Visual Studio or JetBrains Rider. You can view the full list of templates included in our package here: https://github.com/akkadotnet/akkadotnet-templates#available-templates
## Builds
Please see [Building Akka.NET](https://getakka.net/community/contributing/build-process.html).To access nightly Akka.NET builds, please [see the instructions here](http://getakka.net/community/getting-access-to-nightly-builds.html).
## Support
If you need help getting started with Akka.NET, there's a number of great community resources online:* Subscribe to the Akka.NET project feed on Twitter: https://twitter.com/AkkaDotNet (@AkkaDotNet)
* Join the Akka.NET Discord: https://discord.gg/GSCfPwhbWP
* Ask Akka.NET questions on Stack Overflow: http://stackoverflow.com/questions/tagged/akka.netIf you and your company are interested in getting professional Akka.NET support, you can [contact Petabridge for dedicated Akka.NET support](https://petabridge.com/).