Релиз ExGolos v0.3: опен сорс JSONRPC клиент для Голоса на Elixir/Erlang
На связи @ontofractal. Новая версия библиотеки уже опубликована в репозитории на github вместе с github release, на hex.pm, а документация на hexdocs.
Changelog
По сравнению с v0.2 в текущей версии добавлены функции для следующих методов API:
- get_trending_tags
- get_state
- get_content_replies
- get_discussions_by_author_before_date
- get_discussions_by_created
- get_discussions_by_votes
- get_discussions_by_payout
- get_discussions_by_trending
- get_discussions_by_children
- get_discussions_by_feed
- get_discussions_by_hot
- get_discussions_by_active
- get_trending_categories
- get_active_categories
- get_recent_categories
- get_best_categories
Важно
- функция
Golos.get_discussions_by(metric, query)
используется для вызовов всех методов API, начинающихся сget_discussions_by_...
. Для вызова конкретного метода, например,get_discussion_by_trending
в параметрmetric
передается атом:trending
. - функция
Golos.get_categories(metric, query)
используется для вывзовов всех методов API, имеющих видget_..._categories
. Для вызова конкретного метода, например,get_best_categories
в параметрmetric
передается атом:best
. - все остальные методы API этого обновления вызываются как обычно
Документация и тесты
Тесты и документация присутствуют для каждой функции JSONRPC API. В readme находятся примеры использования библиотеки.
Дорожная карта
ExGolos находится в активной разработке.
- Внедрить создание и управление подписками на ивенты
- Исследовать использование GenStage
- Добавить функции для всех типов вызвовов
- Добавить возможность броадкаста транзакций
- Добавить типы (structs) для ответов API
Больше об Elixir
Elixir -- функциональный язык программирования созданный на основе Erlang/OTP. Его основные преимущества: удобные примитивы параллелизации и одновременности(concurrency) вычислений, устойчивость к сбоям и относительно простое создание распределенных кластеров.
Личное впечатление: в процессе разработки я неоднократно убеждался в правильности своего решения изучить Elixir для работы с блокчейнами, веб-сервисами и ETL приложениями. Системы, которые у меня получалось реализовать на Elixir/OTP кажутся мне понятными и элегантными. С использованием других яызков, в частности JS и Ruby, так было далеко не всегда :D