# \[ANN\] YAActL 0.2, Yet Another Actor Library (built in Julia)

**URL:** <https://discourse.julialang.org/t/ann-yaactl-0-2-yet-another-actor-library-built-in-julia/48637>\
**Category:** Package Announcements\
**Tags:** multithreading, concurrency, actors\
**Created:** [October 19, 2020, 4:04pm UTC](https://discourse.julialang.org/t/ann-yaactl-0-2-yet-another-actor-library-built-in-julia/48637 "2020-10-19T16:04:28Z")\
**Posts on this page:** 1\
**Showing post:** 24

<div class="post-metadata">

**Author:** ![pbayer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbayer/32/11675_2.png) [@pbayer](https://discourse.julialang.org/u/pbayer)\
**Post date:** [November 4, 2020, 9:26am UTC](https://discourse.julialang.org/t/ann-yaactl-0-2-yet-another-actor-library-built-in-julia/48637/24 "2020-11-04T09:26:30Z")

</div>

> [@richiejp](#):
>
> Actors and Actor tasks do not need to match 1-to-1 with Julia’s Tasks.

YES, and

> [@fborda](#):
>
> I don’t think the structured concurrency would restrict the actors

If actors don’t run as Julia `Task`s but build on another concurrency primitive, you are right. For example in Elixir tasks are built on actors (called “processes” in Erlang/Elixir) and not vice versa:

```julia
# Elixir example ...
worker = Task.async(Fib, :of, [20])
result = Task.await(worker)
IO.puts "The result is #{result}"

```

> Tasks are implemented as OTP servers, which means we can add them to our application’s supervision tree. (Programming Elixir, p. 294)

It makes absolutely sense to introduce something similar in a Julian actor library as it solves the problem better than the structured concurrency approach. Just we cannot call it `Task` since that is in `Core`.

---

_[View the full topic](https://discourse.julialang.org/t/ann-yaactl-0-2-yet-another-actor-library-built-in-julia/48637)._
