Comments 18
Ссылка на проект с utm-меткой _source=chatgpt.com"
. В связи с этим сразу вопрос - сколько кода было написано LLM, а сколько человеком?
Юзалось для спелчекера и оформления)
По поводу кода, использовалось вспомогательно, почему бы и нет? Много Валидации, документации, юнит тестов и всего прочего.
А какое это имеет значение?
API нужно делать на C, иначе кроме как из C++ вызвать это будет ни откуда нельзя
есть как раз для C, экспортируются все функции внутри библиотеки
https://github.com/DEgITx/librats/blob/master/src/librats_c.h (весь список экспортируемых функций)
https://github.com/DEgITx/librats/blob/master/src/librats_c.cpp
это интерфейс как раз и используется для биндингов в другие языки
можно посмотреть примеры использования внутри unit-теста ( https://github.com/DEgITx/librats/blob/master/tests/test_librats_c_api.cpp )
в частности при линковке должно быть ок
[builder@degitx lib]$ nm --defined-only librats.a|grep "T rats_"
0000000000005bb0 T rats_accept_file_transfer
0000000000002ac1 T rats_announce_for_hash
00000000000021f5 T rats_broadcast_binary
0000000000002794 T rats_broadcast_json
0000000000004e2a T rats_broadcast_message
00000000000005ca T rats_broadcast_string
0000000000006294 T rats_cancel_file_transfer
00000000000003f9 T rats_connect
0000000000001aba T rats_connect_with_strategy
000000000000011f T rats_create
0000000000000326 T rats_destroy
...
я добавил еще в сам пост пример использование C-шных вариантов API
Это очень круто! Не думали на базе вашей библиотеки реализовать не только текстовый, но и аудио-видео чаты?
Как у этой системы с защитой от флуда? Другими словами, смогу я, поправив код библиотеки, положить всю вашу сеть?
Интересуюсь потому что лично мне не известны по-настоящему распределённые системы, которые от этого защищены.
Gossippub частично от этого защищает, но опять же частично. Но я бы сказал это хорошие направления для исследований и улучшений внутри. Пока еще продолжаю закрывать базовые вопросы.
Переформулирую вопрос: вы думаете что в принципе удастся решить вопрос с флудом?
Потому что если ответ "да", то эта библиотека станет решением целой кучи задач (распределённый по-настоящему децентрализованный мессенджер, распределённый децентрализованный DNS и т.п.). И, как вы понимаете, эти цели стоят перед человечеством давно, но так и не были решены
А у вас на сайте под заголовком librats vs libp2p (JavaScript) - это сравнение джаваскриптового биндинга libp2p с программой librats на плюсах?
Если так, то, наверное, корректнее дождаться биндинга на джавскрипт для librats и тогда сравнить.
Ну скажем так, это будет обычная прослойка на плюсах из C++ для V8, из моего предыдущего опыта общения с node-gyp разница с обычно плюсовой программой минимальна, да есть затраты на вызов api из js, но это все погрешности, потому что таких вызовов в коде минимальное количество.
Из всего этого пока что предварительно могу сказать, что я как доделаю биндинги, перетестирую конечно цифры из статьи, чтобы было правильно, как нужно. Но радикальных изменений не жду: реализация у librats - нэтивная, у libp2p на js на куче библиотек с зависимостями на js. Отсюда и разница.
Поставь эксперимент, пускай все клиенты крутят список рандомных сообщений и друг другу шлют и посмотри как быстро между ними будет обновляться инфа
Привет, вы используете эту библиотеку в каком-то продуктовом решении, или это исключительно фундаментальный концепт (just for fun, academic, etc.)?
librats: новая библиотека для распределённых P2P-приложений