Об этом проекте

cellnet — это высокопроизводительная, компонентная и легко расширяемая серверная сетевая библиотека с открытым исходным кодом, написанная на Go. Она прошла несколько итераций разработки, подходит как для обучения новичков, так и для широкого применения в частных и коммерческих проектах, особенно в области игровых серверов. ## Основные возможности - **Поддержка транспортных протоколов:** - TCP: поддержка переподключения коннекторов и плавного перезапуска слушателей. - UDP: чистая отправка и приём сырых пакетов UDP. - HTTP (в тестировании): поддержка приёма и отправки JSON и form, удобно для интеграции игровых серверов с SDK, но для крупномасштабных веб-сервисов рекомендуется использовать профессиональные библиотеки (например, gin). - WebSocket: реализован на основе gorilla/websocket. - **Кодеки:** - Встроенная поддержка форматов кодирования: Google Protobuf, JSON, бинарный протокол (goobjfmt), ProtoPlus (protoplus) и других. - Поддержка смешанной отправки и приёма с разными кодеками, что позволяет без изменения кода взаимодействовать с серверами на разных языках. - **Модели очередей:** - Поддержка однопоточной асинхронной логики (подходит для MMORPG), многопоточной синхронной логики (подходит для ботов), многопоточной конкурентной логики (подходит для шлюзов и HTTP-серверов). - **RPC:** поддержка синхронного и асинхронного RPC. - **Журнал сообщений:** удобный просмотр каждого поля отправляемых и принимаемых сообщений. ## Архитектура и расширяемость cellnet обеспечивает высокий уровень абстракции Processor и Peer, позволяя пользователям расширять их горизонтально для удовлетворения различных потребностей сетевой инкапсуляции. Поддерживаются пользовательские Codec, Peer и Processor. ## Примеры использования Предоставлены простые примеры сервера и клиента, демонстрирующие создание Peer, привязку обработчиков, отправку и приём сообщений. ## Получение и компиляция Требуется Go версии 1.10 или выше, зависимости получаются через `go get`. ## Документация и поддержка Предоставлена документация по очередям, Peer, обработке сообщений, расширению и настройке, а также FAQ и история версий. ## Участники Благодарность многим участникам за исправление ошибок и оптимизацию производительности. ## История версий v4 (2018.5), v3 (2017.8), v2 (2017.1), v1 (2015.8).