SObjectizer-5.6.0: нова мажорна версія акторного фреймворку для C++

SObjectizer це відносно невеликий фреймворк для спрощення розробки складних багатопотокових додатків на C++. SObjectizer дозволяє розробнику будувати свої програми на базі асинхронного обміну повідомленнями з використанням таких підходів як Actor Model, Publish-Subscribe та CSP. Це OpenSource проект під BSD-3-CLAUSE ліцензією. Коротке враження про SObjectizer можна скласти на підставі ось цієї презентації.

Версія 5.6.0 є першим мажорним релізом нової гілки SObjectizer-5.6. Що означає також завершення розвитку гілки SObjectizer-5.5, яка розвивалася понад чотири роки.

Оскільки версія 5.6.0 відкриває новий розділ розвитку SObjectizer-а, то нововведень зовсім немає в порівнянні з тим, що було змінено та/або видалено з SObjectizer-а. Зокрема:

  • використовується C++17 (раніше обходилися підмножиною C++11);
  • проект переїхав і живе тепер на BitBucket-е з офіційним, а не експериментальним, дзеркалом на GitHub-і;
  • у кооперацій агентів немає більше рядкових імен;
  • з SObjectizer видалено підтримку синхронної взаємодії між агентами (його аналог реалізовано у супутньому проекті so5extra);
  • видалено підтримку ad-hoc агентів;
  • для надсилання повідомлень тепер використовуються лише вільні функції send, send_delayed, send_periodic (старі методи deliver_message, schedule_timer, single_timer з публічного API вилучено);
  • функції send_delayed і send_periodic тепер мають єдиний формат незалежно від типу одержувача повідомлення (чи то mbox, mchain або посилання на агента);
  • додано клас message_holder_t для спрощення роботи з надісланими повідомленнями;
  • видалено безліч речей, які були позначені як deprecated ще у гілці 5.5;
  • ну і ще всяке різне.

Більш розгорнутий список змін можна знайти тут. Там же, у Wiki проекту, можна знайти документацію за версією 5.6.


Архіви з новою версією SObjectizer можна взяти на BitBucket-е або на SourceForge.


PS. Спеціально для скептиків, які вважають, що SObjectizer нікому не потрібний та ніким не використовується. Це не так.

Джерело: linux.org.ru

Додати коментар або відгук