The weekly work log posts report about my activities during the previous week(s).
- tractor - Actor framework for Rust modelled after Pony’s actors:
After having used several of the other Actor frameworks for Rust (e.g.
Acteur), I started writing my own. Actors in
tractorcannot deadlock as they do not support any blocking operations. Furthermore, sending a message to an actor can never fail in
tractor, as holding a reference to an actor will prevent that actor from being stopped. Actors will terminate once no more references exist and it’s mailbox is empty. It also ships with a nice
proc_macro, actually my first
proc_macroever. This allows you to write very concise code and let the macro generate all the boilerplate code for you.
Pull requests (PR)
Ponyc #3707: Fix calculation of # CPU cores on FreeBSD/DragonFly. Pony uses the number of CPU cores (and not number of logical CPUs which include hyperthreads) to size the number of scheduler threads. On my i7-8565U, which is a 4-core, 2-way HT processor, Pony was using 8 scheduler threads instead of just 4. The benchmarks I was running at that time showed very significant increase of latency when using 8 scheduler threads vs just 4. (PR merged)
rumqtt #239 and rumqtt #240:
rumqttis a MQTT library for Rust. The first PR fixes some
panics and improves performance and memory consumption. The second PR allows to retrieve the
pkid(paket id) that
rumqttcinternally generates when a message is published. This is useful to correlate a message with it’s
pkidand enables a client to know when a certain message has been acknowledged by the broker (QoS=1 or QoS=2). (PR pending)
Graph Neighbor Matching 0.9.0: New release that updates dependencies and contains some code refactorings.
graph-io-gml 0.3.0: This is a loader for GML (Graph Modelling Language) files. Version 0.3.0 updates dependencies, uses
try!, and it is now using Cargo edition 2018. The library goes back to January 2016.
serde-key-value-vec-map 0.1.0: Deserialize maps or JSON objects in
serdeto structs that implement the
- Ponyc #3708: Report that
ponyc fails to compile on FreeBSD 12.2.