Skip to content

Latest commit

 

History

History
586 lines (368 loc) · 28.4 KB

CHANGELOG.md

File metadata and controls

586 lines (368 loc) · 28.4 KB

Changelog

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

Added

  • Add prelude module (#145)
  • Add Actor::next method (#147)
  • Add on_message function to Actor trait (#155)

Changed

  • BREAKING: Use ForwardMessageSend trait for Context::forward methods (#146)
  • BREAKING: Move pool and pubsub actors into new kameo_actors crate (#154)

Removed

  • BREAKING: Remove mailbox generics and request traits (#153)
  • Remove unnecessary trait bound in Context::forward method </>

Fixed

  • Spawn with tokio unstable cfg flags </>

Documentation

  • 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 </>

Misc

  • 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

Added

  • BREAKING: Add unregister method to ActorSwarm (#133)
  • BREAKING: Add ReplyError trait for better PanicError downcasting (#137)
  • BREAKING: Add Error type to Actor trait (#138)
  • Add PubSub SubscribeFilter functionality (#120)
  • Implement infallible replies for missing std::collections types (#127)
  • Move PartialEq and Hash manual implementations from PeerId to PeerIdKind </>
  • Impl Error for PanicError </>
  • 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)

Changed

  • BREAKING: Use ControlFlow enum instead of Option for Actor methods (#140)
  • Use Box<dyn FnMut> for PubSub filter functions to allow dynamic filtering behavior (#124)
  • Update overhead benchmark and delete fibonacci benchmark </>
  • Use downcast-rs instead of mopa for ReplyError trait </>
  • Use ReplyError to simplify trait bounds </>

Removed

  • 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 </>

Fixed

  • BREAKING: Actor pool worker scheduling </>
  • ActorID PartialEq and Hash implementations </>
  • Missing Hasher import in id tests </>
  • wait_startup deadlock on actor start error </>
  • Pubsub tests </>

Documentation

  • 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 </>

Misc

  • 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

Added

  • 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 and blocking_unlink methods to ActorRef (#115)

Changed

  • BREAKING: Use kameo::error::Infallible in Reply derive macro instead of ()
  • BREAKING: Modularize features and improve conditional compilation (#112)

Removed

  • BREAKING: Remove actor state from PreparedActor (#99)
  • BREAKING: Remove deprecated link_child, unlink_child, link_together, and unlink_together methods </>
  • Remove mailbox capacity warning on unbounded mailbox tell requests </>
  • Remove itertools dependency and replace repeat_n with std::iter::repeat </>

Fixed

  • Fix clippy lints and add to CI

Documentation

  • Add Caido Community sponsor to README.md </>
  • Remote stars badge from README.md </>
  • Add huly labs sponsor to README.md </>

Misc

  • 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

Added

  • 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 </>

Changed

  • BREAKING: Relax request impls to be generic to any mailbox (#71)
  • BREAKING: Use owned actor ref in spawn_with function (#68)

Fixed

  • BREAKING: Startup deadlock on small bounded mailboxes (#84)
  • Tokio_unstable compile error in spawn </>
  • Request downcasting and added tests (#85)

Documentation

  • Remove reverences to deprecated linking methods (#79)

Misc

  • Add empty message to git tag release script </>
  • Remove msrv from Cargo.toml (#82)

0.12.2 - 2024-10-17

Added

  • Add spawn_link and link/unlink functions (#67)

Documentation

  • Update README with improved content </>

Misc

  • Add release script </>

0.12.1 - 2024-10-15

Added

  • Add ForwardMessageSendSync request trait (#65)

Fixed

  • Actor lifecycle error handling when on_start errors </>

Documentation

  • Add FAQ to book about reasons for actors stopping </>

Misc

  • 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

Added

  • Add ActorRef::wait_startup method (#63)

Changed

  • BREAKING: Make Links private (#57)
  • BREAKING: Move actor pool and pubsub to their own modules (#56)
  • BREAKING: Move ActorIDFromBytesError to error module </>
  • BREAKING: Move remote actor functionality behind remote feature (#60) </>
  • ActorID and improve documentation (#48)

Documentation

  • 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)

Misc

  • 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

Added

  • 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 </>

Changed

  • BREAKING: Detach stream when actor stops </>
  • BREAKING: Use multiaddr and add SwarmFuture (#44) </>

Fixed

  • attach_stream panicking when actor is stopped </>

Documentation

  • 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 </>

Misc

  • 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

Added

  • BREAKING: Add request traits (#39)
  • Add delayed_send for unbounded actors </>
  • Add remote actor support (#35)
  • Add actor attribute to Actor derive macro </>
  • Make actor swarm listen address optional </>
  • Use macro to clean request trait impls for MaybeRequestTimeout </>

Removed

  • BREAKING: Remove queries (#36)

Fixed

  • Call on_panic when actor panics during startup </>

Documentation

  • Update README.md </>
  • Improve documentation for async messages </>
  • Add missing mut from reply_sender example </>
  • Add MessageSend import in code examples </>

Misc

  • 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

Added

  • BREAKING: Add support for bounded/unbounded mailboxes (#29)
  • Add Send + 'static bounds to Reply trait </>
  • Add pubsub actor (#31) </>
  • Add support for async pool factory functions (#33)
  • Add async spawn_with function (#34)

Changed

  • BREAKING: Return SendError from send methods allowing replies to be received blocking (#27)

Fixed

  • Buffered messages not being applied correctly (#32)

Misc

  • Update CHANGELOG.md </>
  • Move crates out of nested crates dir </>

0.8.1 - 2024-05-24

Added

  • Add BlockingMessage for blocking actor code (#26)

0.8.0 - 2024-04-19

  • @liutaon made their first contribution in #21

Added

  • Allow ActorPool itself to be spawned as an actor </>
  • Add SendError::flatten method </>
  • Implement internal buffering whilst actor is starting up </>

Changed

  • BREAKING: Use StreamMessage enum instead of trait </>
  • BREAKING: Use Display implementation for handler errors </>

Removed

  • Remove Sync requirement from Reply macro

Fixed

  • is_alive returning the opposite value </>

Documentation

  • Add example to Reply trait code docs </>

Misc

  • Add CHANGELOG.md </>
  • Update cliff.toml </>
  • Add newline for new contributors in cliff config </>

0.7.0 - 2024-04-15

Added

  • BREAKING: Add values to StreamMessage::on_start and StreamMessage::on_finish </>
  • Add support for actor generics in messages macro </>
  • Add stream messages to forward messages from a stream to an actor </>

Removed

  • BREAKING: Remove stateless actors </>

Misc

  • Remove unused dependency trait-variant </>
  • Add overhead benchmark </>
  • Remove commented stateless actor code </>
  • Add git cliff integration </>

0.6.0 - 2024-04-11

Added

  • BREAKING: Add delegated reply with context type </>

Changed

  • BREAKING: Move all types to separate modules and improve documentation </>

Removed

  • BREAKING: Remove Spawn trait and use spawn functions </>

Documentation

  • Improve docs for spawn functions </>
  • Add note to Actor derive macro </>
  • Add missing Context param from docs </>

0.5.0 - 2024-04-04

Added

  • Add HandlerError to SendError to flatten actor errors </>

Removed

  • BREAKING: Remove nightly flag and implement Reply on common types and derive macro </>

Documentation

  • Remove spawn from ActorPool example </>
  • Improve docs for QueriesNotSupported error </>

0.4.0 - 2024-04-03

Added

  • Add debug assert to protect against deadlocks </>
  • Add ActorPool </>

Changed

  • BREAKING: Impl Message and Query for actor instead of message type </>

Documentation

  • Add shields to readme </>

Misc

  • Delete empty mailbox.rs module </>
  • Rename bench fibonachi to fibonacci </>

0.3.4 - 2024-04-02

Fixed

  • Parsing of message attributes </>

0.3.3 - 2024-04-01

Added

  • Add local non-send/sync support </>
  • Add support for !Sync actors </>
  • Add benchmarks </>
  • Remove _unsync methods for nightly </>

Documentation

  • Improve readme and crate docs </>

Misc

  • Fix bench name </>
  • Update crate descriptions </>

0.3.2 - 2024-03-31

Fixed

  • Only validate methods marked as message or query </>

Documentation

  • Pimp README </>

Misc

  • Add license files </>
  • Create FUNDING.yml </>
  • Add .DS_Store to .gitignore </>

0.3.1 - 2024-03-30

Documentation

  • Update install version </>

0.3.0 - 2024-03-30

Added

  • Add macros </>

0.2.0 - 2024-03-30

Added

  • Remove async_trait from public traits </>

0.1.2 - 2024-03-29

Added

  • Re-export async_trait </>

Documentation

  • Fix nightly panic info </>
  • Add installing section to docs </>

0.1.1 - 2024-03-29

Added

  • Add support for stable rust </>