Loyd
Нужна
Loyd
Только не на жабе (
Anton
Эх, а кто перепишет?
Alexander
Кафка нужна =)
Я не уверен что она вообще запустится на 2гб памяти. Ява же.
Loyd
Минимальная конфигурация нормально на 5$ DO не влазит
Loyd
Хотя вся суть кафки в "пох, ось закеширует"
Loyd
Anton
Loyd
Давно подбиваю кафку переписать на расте
Loyd
Рафка (rufka). Даже подход уже был)
Anton
*похвастал*
պլհկ
На расте даже клиент не смогли написать нормальный
պլհկ
Куда уж сервер
Anton
Alexander
Andrei 🦉
Andrei 🦉
с тем же успехом можно у редиса пабсаб юзать
Andrei 🦉
в проде
Andrei 🦉
то есть персистентность будете реализовывать на стороне клиента? ну ну, и правда кафка не нужна
Sergey
внезапно
Alexander
Ну просто не всегда это надо или важно.
G72K
Alexander
Αλεχ
Αλεχ
верной дорогой идете
G72K
G72K
И с растом работает? :)
Есть еще декодеры логической репликации для postgresql, тоже можно "подписаться" на любые изменения
պլհկ
Легаси это кафка что ли?
պլհկ
TIL
Vladimir
Все что написано до 2017 легаси
Alexander
А для раста Кафка есть? Вроде есть и живая.
Loyd
Вроде как да
Loyd
Говорят даже асинхронные биндинги подвезли
պլհկ
rdkafka
պլհկ
Это обертка над сишкой
Anonymous
Как на Rust'е завершить процесс?
Sergey
отправить SIGKILL?
Anonymous
Я не знаю)
Поэтому и спрашиваю
Денис
https://crates.io/crates/ctrlc
https://crates.io/crates/chan-signal
Денис
для асинхронщины можно юзать tokio-signal
Roma
Loyd
Roma
Anonymous
Αλεχ
Structs have private fields (C-STRUCT-PRIVATE)
Making a field public is a strong commitment: it pins down a representation choice, and prevents the type from providing any validation or maintaining any invariants on the contents of the field, since clients can mutate it arbitrarily.
Public fields are most appropriate for struct types in the C spirit: compound, passive data structures. Otherwise, consider providing getter/setter methods and hiding fields instead.
Αλεχ
Но удобных get set мы не завезли
Αλεχ
Делайте как жабе
Αλεχ
Ясно понятно
պլհկ
100% есть дерайв геттер
Vladimir
Тут походу все советы нацелены на обратную совместимость
Vladimir
Лучше бы посоветовали как начать лики считать мемори сейфти
պլհկ
Прими их в сердце своем
Αλεχ
a.foo = b.bar первращается в a.setFoo(b.bar())
Vladimir
Надо как в делфи
Денис
ну, такой просто кейс покрывается pub :)
Αλεχ
так они говорят pub плохо
Vladimir
Чтоб a.foo = bar разворачивалось в сеттер
Αλεχ
по той же логике что в шарпах
պլհկ
Бля ну как много структов у вас в паблик апи торчат?
Денис
гуд поинт
Vladimir
Ещё короче можно как в с++ оператор перезагружать
Αλεχ
не понял
պլհկ
Αλεχ
а как в расте без структур в паблике можно что-то полезное сделать?
պլհկ
Структура в паблике не значит что ей надо полями светить
Vladimir
А поскольку асигн низя надо %= (есть же такой?). Будет код f.foo%=bar
պլհկ
պլհկ
😏
Vladimir
:=
Это на препроцессоре наворотить
Vladimir
s/:=/%=
Αλεχ
а еще желательно билдеры в язык как-нибудь пропилить, а то неприкольно цепочкой методов собирать объект
Денис
Vladimir