All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.16.0 - 2025-03-28
- @attila-lin made their first contribution in #149
- Add prelude module (#145)
- Add
Actor::next
method (#147) - Add
on_message
function toActor
trait (#155)
- BREAKING: Use
ForwardMessageSend
trait forContext::forward
methods (#146) - BREAKING: Move pool and pubsub actors into new
kameo_actors
crate (#154)
- BREAKING: Remove mailbox generics and request traits (#153)
- Remove unnecessary trait bound in
Context::forward
method </>
- Spawn with tokio unstable cfg flags </>
- Bump version in getting started page </>
- Remove unnecessary tokio time sleep import in code docs </>
- Add vanhouc sponsor to README.md </>
- Fix sponsor badge link </>
- Impove registerering and looking up actors example </>
- Fix clippy lints (#149)
- Ci updates </>
- Improve ci and run in parallel (#156)
- Add release scripts </>
- Bump kameo_macros to version 0.16.0 </>
0.15.0 - 2025-03-13
-
@Tristaan made their first contribution in #142
-
@Plebshot made their first contribution in #128
-
@agoldhammer made their first contribution in #126
-
@hirschenberger made their first contribution in #121
- BREAKING: Add
unregister
method toActorSwarm
(#133) - BREAKING: Add
ReplyError
trait for betterPanicError
downcasting (#137) - BREAKING: Add
Error
type toActor
trait (#138) - Add
PubSub
SubscribeFilter
functionality (#120) - Implement infallible replies for missing
std::collections
types (#127) - Move
PartialEq
andHash
manual implementations fromPeerId
toPeerIdKind
</> - Impl
Error
forPanicError
</> - Add
ActorRef::wait_startup_result
method (#139) - Add
PanicError::downcast
method </> - Implement least loaded scheduling for actor pool </>
- Use
target_has_atomic
cfg to detect Atomic type support for 32-bit embedded systems, wasm, etc (#142)
- BREAKING: Use
ControlFlow
enum instead ofOption
forActor
methods (#140) - Use
Box<dyn FnMut>
forPubSub
filter functions to allow dynamic filtering behavior (#124) - Update overhead benchmark and delete fibonacci benchmark </>
- Use
downcast-rs
instead ofmopa
forReplyError
trait </> - Use
ReplyError
to simplify trait bounds </>
- BREAKING: Remove internment dependency and simplify peer ID handling (#123)
- BREAKING: Remove lifetime from
Context
and borrow mutably instead (#144) - Remove reply implementations for unstable integer atomics </>
- BREAKING: Actor pool worker scheduling </>
ActorID
PartialEq
andHash
implementations </>- Missing
Hasher
import in id tests </> wait_startup
deadlock on actor start error </>- Pubsub tests </>
- Bump kameo version in getting started page </>
- Document remote links </>
- Add bootstrapping with custom behaviour docs </>
- Add sponsor logos to README.md </>
- Fix typos (#128)
- Remove blank line in
reply_sender
code docs </> - Fix sponsor badge link in README.md </>
- Add comparing rust actor libraries blog post to resources in README.md </>
- Improve actor code docs </>
- Replace round-robin with least-connections ActorPool scheduling </>
- Add
remote
as required feature for examples (#121) - Improve release script </>
- Update libp2p dependency from version 0.54.1 to 0.55.0 (#122)
0.14.0 - 2025-01-16
-
@meowjesty made their first contribution in #92
-
@Kamil729 made their first contribution in #96
- BREAKING: Add support for manual swarm operations (#111)
- BREAKING: Add local actor registry for non-remote environments (#114)
- BREAKING: Add support for remote actor links (#116)
- Add warnings for potential deadlocks (#87)
- Implement infallible reply for
std::path
types (#96) - Add
blocking_link
andblocking_unlink
methods toActorRef
(#115)
- BREAKING: Use
kameo::error::Infallible
inReply
derive macro instead of()
- BREAKING: Modularize features and improve conditional compilation (#112)
- BREAKING: Remove actor state from
PreparedActor
(#99) - BREAKING: Remove deprecated
link_child
,unlink_child
,link_together
, andunlink_together
methods </> - Remove mailbox capacity warning on unbounded mailbox tell requests </>
- Remove itertools dependency and replace repeat_n with std::iter::repeat </>
- Fix clippy lints and add to CI
- Add Caido Community sponsor to README.md </>
- Remote stars badge from README.md </>
- Add huly labs sponsor to README.md </>
- Fix release script with current release notes </>
- Add changelog links for new versions </>
- Remove flake.nix and flake.lock </>
0.13.0 - 2024-11-15
- @13r0ck made their first contribution in #79
- Impl
IntoFuture
for requests (#72) - Add public
BoxReplySender
type alias (#70) - Add support for preparing an actor and running it outside a spawned task (#69)
- Add
Context::reply
shorthand method </>
- BREAKING: Relax request impls to be generic to any mailbox (#71)
- BREAKING: Use owned actor ref in
spawn_with
function (#68)
- BREAKING: Startup deadlock on small bounded mailboxes (#84)
- Tokio_unstable compile error in
spawn
</> - Request downcasting and added tests (#85)
- Remove reverences to deprecated linking methods (#79)
- Add empty message to git tag release script </>
- Remove msrv from Cargo.toml (#82)
0.12.2 - 2024-10-17
- Add spawn_link and link/unlink functions (#67)
- Update README with improved content </>
- Add release script </>
0.12.1 - 2024-10-15
- Add
ForwardMessageSendSync
request trait (#65)
- Actor lifecycle error handling when
on_start
errors </>
- Add FAQ to book about reasons for actors stopping </>
- Ignore alpha and beta tags in cliff.toml </>
0.12.0 - 2024-10-11
- @shusvr made their first contribution in #60
- @marcaddeo made their first contribution in #47
- Add
ActorRef::wait_startup
method (#63)
- BREAKING: Make
Links
private (#57) - BREAKING: Move actor pool and pubsub to their own modules (#56)
- BREAKING: Move
ActorIDFromBytesError
toerror
module </> - BREAKING: Move remote actor functionality behind
remote
feature (#60) </> - ActorID and improve documentation (#48)
- Remove benchmark from README.md </>
- Add contributors badge to README.md </>
- Add Discord badge to README.md </>
- Add book badge to README.md </>
- Add getting help section to README.md </>
- Improve README with use cases, additional resources, and clearer structure </>
- Add support section to README.md </>
- Add Distributed Actor Communication section to README.md </>
- Improve code docs for remote module </>
- Add in-depth distributed actors information to kameo book (#51)
- Update heading levels in book </>
- Improve code docs and examples with all tests passing (#54)
- Add FAQ to book (#59)
- Add links to README badges (#47)
- Add gtag to kameo book (#52)
- Add Github CI </>
- Remote beta and nightly toolchains from CI </>
- Create CODE_OF_CONDUCT.md </>
- Add CONTRIBUTING.md </>
- Add github issue templates </>
- Move banner.png into docs directory </>
- Add .envrc to .gitignore </>
- Add pr detection to git cliff contributors </>
0.11.0 - 2024-09-29
- BREAKING: Add lifetime to requests to avoid mailbox cloning </>
- Use interned peer ids for improved performance (#43)
- Return stream from join handle in
attach_stream
</>
attach_stream
panicking when actor is stopped </>
- Add book explaining core concepts (#40)
- Add missing examples from actors page </>
- Fix indentation for request features </>
- Add note about Result::Err in the reply trait </>
- Add note about
SendError::HandlerError
in replies </> - Add icons and links to core concepts overview page </>
- Fix formatting in book </>
- Add icons to introduction headings </>
- Fix path to README in Cargo.toml </>
- Add obsidian related items to .gitignore </>
- Remove unused mailbox modules </>
- Update git cliff configuration </>
0.10.0 - 2024-09-09
- BREAKING: Add request traits (#39)
- Add delayed_send for unbounded actors </>
- Add remote actor support (#35)
- Add
actor
attribute toActor
derive macro </> - Make actor swarm listen address optional </>
- Use macro to clean request trait impls for
MaybeRequestTimeout
</>
- BREAKING: Remove queries (#36)
- Call on_panic when actor panics during startup </>
- Update README.md </>
- Improve documentation for async messages </>
- Add missing
mut
fromreply_sender
example </> - Add
MessageSend
import in code examples </>
- Fix path to README in Cargo.toml files </>
- Move kameo crate to root directory </>
- Add banner image </>
- Create dependabot.yml </>
- Remote PR number suffix from changelog generation </>
0.9.0 - 2024-06-25
- BREAKING: Add support for bounded/unbounded mailboxes (#29)
- Add
Send + 'static
bounds toReply
trait </> - Add pubsub actor (#31) </>
- Add support for async pool factory functions (#33)
- Add async spawn_with function (#34)
- BREAKING: Return
SendError
from send methods allowing replies to be received blocking (#27)
- Buffered messages not being applied correctly (#32)
0.8.1 - 2024-05-24
- Add
BlockingMessage
for blocking actor code (#26)
0.8.0 - 2024-04-19
- @liutaon made their first contribution in #21
- Allow
ActorPool
itself to be spawned as an actor </> - Add
SendError::flatten
method </> - Implement internal buffering whilst actor is starting up </>
- BREAKING: Use
StreamMessage
enum instead of trait </> - BREAKING: Use
Display
implementation for handler errors </>
- Remove
Sync
requirement fromReply
macro
is_alive
returning the opposite value </>
- Add example to
Reply
trait code docs </>
0.7.0 - 2024-04-15
- BREAKING: Add values to
StreamMessage::on_start
andStreamMessage::on_finish
</> - Add support for actor generics in
messages
macro </> - Add stream messages to forward messages from a stream to an actor </>
- BREAKING: Remove stateless actors </>
- Remove unused dependency
trait-variant
</> - Add overhead benchmark </>
- Remove commented stateless actor code </>
- Add git cliff integration </>
0.6.0 - 2024-04-11
- BREAKING: Add delegated reply with context type </>
- BREAKING: Move all types to separate modules and improve documentation </>
- BREAKING: Remove
Spawn
trait and use spawn functions </>
- Improve docs for spawn functions </>
- Add note to
Actor
derive macro </> - Add missing
Context
param from docs </>
0.5.0 - 2024-04-04
- Add
HandlerError
toSendError
to flatten actor errors </>
- BREAKING: Remove
nightly
flag and implementReply
on common types and derive macro </>
0.4.0 - 2024-04-03
- BREAKING: Impl
Message
andQuery
for actor instead of message type </>
- Add shields to readme </>
0.3.4 - 2024-04-02
- Parsing of message attributes </>
0.3.3 - 2024-04-01
- Add local non-send/sync support </>
- Add support for
!Sync
actors </> - Add benchmarks </>
- Remove _unsync methods for nightly </>
- Improve readme and crate docs </>
0.3.2 - 2024-03-31
- Only validate methods marked as message or query </>
- Pimp README </>
0.3.1 - 2024-03-30
- Update install version </>
0.3.0 - 2024-03-30
- Add macros </>
0.2.0 - 2024-03-30
- Remove async_trait from public traits </>
0.1.2 - 2024-03-29
- Re-export async_trait </>
0.1.1 - 2024-03-29
- Add support for stable rust </>