Skip to content

Kompact 0.10.0

Compare
Choose a tag to compare
@Bathtor Bathtor released this 28 Oct 16:03
· 162 commits to master since this release
b3d31ba

Features

  • Async/Await Support
  • UDP networking support
  • Network Buffers can now be configured using BufferConfig
  • Support for custom component recovery handlers
  • Buffer chunks can now be chained, allowing essentially arbitrary sized messages to be serialised (limited by the buffer pool configuration and system memory, of course)
  • Explicit and implicit routing for incoming messages on named paths has been implemented
  • Type Erased Components (nightly-only, feature gated)

Breaking Changes

  • ProvidedPort/RequiredPort only has a single type parameter now
  • All event/message handlers must return a special Handled struct now. Normally that should simply be Handled::Ok.
  • Within serialisers the buf.bytes() method does not necessarily return the complete slice anymore. This in accordance with the interface specification, but differs from previous behaviour.
  • Serialisers must now implement TryClone, as cloning the serialiser is sometimes necessary. Since most are stateless, they can fulfil this requirement by simply deriving Clone.
  • Named actor paths are now added correctly into the store, which may cause some runtime issues for users of path hierarchies. This is technically a bug fix, though, as paths were always meant to be added split by / and not as a single blob.
  • ActorLookup/ActorStore has a new API, but I don't expect any external issues with that.

Other Changes

  • Serialisable may override the cloned method to avoid the broadcast policy having to serialise an otherwise local and cloneable structure.
  • The same goes for Serialiser::try_clone_data.
  • To preserve my sanity while testing, I added a few convenience methods for constructing named actor paths to SystemPath and NamedPath. In particular you can now use something like path / "new-child" / '*' to extend a named path.
  • Nagle's algorithm can now be configured in the NetworkConfig

And many other changes...too many to list, really. This has become quite a large release.