Comments 10
Спасибо, полезная вещь, сохранил в закладки. Но вот слово "латентный" используется неверно. Обычно его используют в психологии и около. Например, латентный голубой.)
Пока ещё не писал на расте, поэтому можете просветить, будет ли использование этой библиотеки чем то отличаться от ситуации, в которой я вручную создам несколько потоков, а в каждом потоке запущу бесконечный цикл обработки сообщения из соответствующей in-memory очереди?
Да, это отличается от пару потоков + бесконечный цикл + своя очередь. Либа даёт готовую обвязку для жизненного цикла потоков, отмены, бэк-прежура и закрепления потоков за ядрами. Четкий паттерн.
На уровне кода это всё равно обычные системные потоки и in-memory очереди, но с уже решёнными острыми углами: корректное завершение, единый хэндл, метки здоровья, выбор CPU, единые ошибки/таймауты. Поэтому получается надёжнее и масштабируется без боли, а оверхед микроскопический.
Либа для масштабирования. При желании можно event-driven бэкенд придумать. Скоро появятся http/nats сервер вокруг этого.
Главная фича - это готовый интерфейс для написания коннекторов и стримов, которые заслуживают отдельного крейта, но база будет здесь.
Вложенность кода, конечно, пугающая. Может оно и быстрое, но разобраться в этом сложновато. Доверие к качеству кода в либе по этому примеру - сильно падает. Но если так и правда быстрее, то доточка в плане самого кода и будет всё прекрасно. Сама тематика для Rust - актуальная, финансовый софт на нём хорошо идёт.
Кстати, возможно я уже видел часть этого кода. Вы случаем не из той компании где тебя помещают в отдельный чат в телеге, не знакомят с командой кроме ведущего менеджера и пары помощников и где тебе надо кодить задачи под солану в гордом одиночестве и с еженедельной оплатой в крипте? А то мир маленький, а код узнаваемый.
давайте по-простому. на том, что понятно и близко особенно мне.
когда вы пишите торговую инфраструктуру, будь это hft или просто алготрейдинг, хочется сделать универсальную штуку, чтобы можно было менять стратегии, как картриджи, и бэктестить их. и быть уверенным, что все остается на уровне в других местах. я делал это много раз по-разному. за года выработался определенный рефлекс. я решил упростить для себя и вас это дело. буду и дальше развивать.
на вас все еще лежит ответственность за написание стратегии (модели) и самих коннекторов. сами коннекторы можно выносить в отдельные крейты и переиспользовать, а также плодить. хотите, моэкс данные/экшены - имплойте интерфейс и в разных моделях юзайте. модель - это бизнес логика (торговая стратегия в мире трейдинга).
и самое главное, что это все делается мной с максимальным уклоном в производительность и сокращение життера
Вы случаем не из той компании
я понял, о чем вы. но нет
TitanRt — реактивный рантайм для реального времени (и не только HFT)