Об этом проекте
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).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.