Библиотеки для работы с сетью с: C++ сеть. Как работать с сетью в C++? — Хабр Q&A
Программирование сетевых приложений на языке C++ / Хабр
Доброго времени суток! Я хочу поделиться с вами опытом, накопленным за несколько месяцев работы над данной темой.
Сейчас сетевые игры и приложения продолжают набирать популярность, а вместе с тем возрастает число желающих написать свою собственную программу, работающую с сетью.
Началось всё с того, что мне необходимо было написать обычный чат на языке C++. Естественно, нужно было найти способ попроще, при этом не потратив много времени.
Среда C++ Builder предоставляет несколько вариантов написания сетевых приложений:
1. Использовать библиотеку winsock.h (библиотека Windows Sockets)
Данный способ хорош тем, что он универсален, и это является безусловным плюсом. Но если вы выбрали данный способ, будьте готовы к тому, что вам придётся копаться в WinAPI и создавать потоки, а это не каждому под силу. Поэтому данный способ не сильно подходит в ситуации, когда времени на написание готовой программы не так уж и много.
2. Использовать компоненты Indy
Если вы будете использовать этот способ, будьте готовы испытать его один серьёзный минус — слабая переносимость. Компоненты очень серьёзно зависят от версии библиотеки, а с каждой новой версии программной среды поставляется новая версия библиотеки Indy, в которой добавляются или перерабатываются новые свойства и методы компонент. И этот способ я тоже быстро отсёк, потому что хотелось найти нечто более универсальное.
3. Использовать компоненты TcpServer и TcpClient
Лично я пытался соорудить чат на этих компонентах, но так ничего и не вышло. Надеюсь, что у вас, уважаемые хабраюзеры, был успешный опыт использования данных компонент.
4. Использовать компоненты ServerSocket и ClientSocket
Фундаментально эти компоненты основаны на Windows Sockets, только здесь вам не придётся возиться с WinAPI. Всё сводится к тому, чтобы грамотно использовать свойства и методы этих компонент. Этот способ экономит достаточно времени, и поэтому для ситуаций, когда нужен результат за короткое время, он подходит идеально.
Итак, пару слов о этих компонентах.
Находятся они на вкладке «Internet» палитры компонент в C++ Builder 6. В поздних версиях данной программной среды разработчики убрали рассматриваемые компоненты с этой палитры, но в стандартной комплектации поставляется пакет установки (в C++ Builder 2010 — файл dclsockets140.bpl: имя файла в разных версиях может отличаться только последней цифрой), который нужно будет установить через настройки проекта (меню «Project» -> «Options» -> «Packages» -> кнопка «Add…»). После установки указанного пакета компоненты появятся на палитре во вкладке «Internet».
ServerSocket и ClientSocket могут работать в двух режимах: блокирующем и асинхронном. Отличия в том, что при блокирующем режиме программа-сервер приостановит свою работу до тех пор, пока не подключится новый клиент, а каждый клиент обслуживается в отдельном потоке. Поэтому оптимальнее выбрать асинхронный режим, в котором программа-сервер будет спокойно продолжать работу, не дожидаясь очередного клиента.
Для того, чтобы создать сервер, в компоненте ServerSocket достаточно лишь указать порт, который будет использоваться. Это целое число от 0 до 65535. После этого используются лишь следующие методы: Open() для создания сервера и Close() для его разрушения.
Используя компоненту ClientSocket, можно создать клиентскую часть приложения. У компоненты ClientSocket имеются следующие свойства:ClientSocket1->Address; // переменная строкового типа, в которой прописывается IP-адрес сервера
ClientSocket1->Host; // переменная строкового типа, в которой прописывается DNS сервера
ClientSocket1->Port; // переменная целого типа, определяющая порт сервера, к которому производится подключение
Стоит отметить, что свойство Host является более приоритетном, чем свойство Address. Таким образом, если вы укажете оба свойства, то подключение установится с DNS сервера, который указан в свойстве Host. Подключение устанавливается или разрывается с помощью тех же методов Open() и Close().
Общим для обеих компонент является булево свойство Active, по которому определяется корректность (или активность) соединения.
Как видите, всё просто. Но будьте внимательнее с последовательностью событий, совершаемых в данных компонентах, и я верю, что через несколько дней вы сможете написать простенький чат для общения с друзьями.
Результат моего исследования этой темы вылился в методическую разработку, благодаря которой я успешно сдал экзамен по программированию. В ней же подробно расписаны принципы работы рассмотренных в данной статье компонент.
Также рекомендую ознакомиться с книгой Архангельского А.Я. «Приёмы программирования в C++ Builder 6 и 2006. Механизмы Windows, сети», в которой также освящена тема разработки сетевых приложений.
Удачи вам!
Основы работы с сетями в C# и .NET
Введение в сети и протоколы
Последнее обновление: 31.10.2015
Сегодня миллионы компьютеров и устройств связаны в глобальную сеть интернет, либо в отдельные локальные подсети. В связи с этим возникает необходимость
создания приложений, которые бы использовали все преимущества передачи данных по сети. Например, одним из распространенных приложений, которое использует передачу по сети,
является веб-браузер. И платформа .NET и язык программирования C# предоставляют все необходимые возможности для создания приложений, которые могут взаимодействовать по сети и использовать
различные сетевые протоколы.
Но прежде чем переходить непосредственно к созданию приложений, надо пару слов сказать, что вообще представляет собой коммуникация в сети.
Вся сеть состоит из отдельных элементов — хостов, которые представляют собой компьютеры и другие подключенные устройства. Между собой они соединены каналами связи
(кабели Ethernet, Wi-Fi и т.д.) и маршрутизаторами. Маршрутизаторы объединяют компьютеры в подсети и контролируют передачу данных между ними.
Но компьютеры-хосты не взаимодействуют абы как между собой. Они применяют протоколы. Протокол представляет собой соглашения о том, как
пакеты данных будут передаваться по каналам коммуникации. Таким образом, протокол упорядочивает взаимодействие.
Существует множество различных протоколов. Протоколы, которые используются для передачи данных по сети, составляют семейство протоколов TCP/IP.
Основные из них: Internet Protocol (IP), Transmission Control Protocol (TCP) и User Datagram Protocol (UDP). Причем эти протоколы организованы в уровневую систему:
IP представляет сетевой уровень. Он использует нижележащие уровни, которые представляют физические каналы коммуникации — кабели Ethernet и т.д., для
передачи пакетов с данными другому хосту.
Выше IP располагается транспортный уровень, который образуют протоколы TCP и UDP. Эти протоколы используют определенные порты для передачи данных. TCP позволяет
отследить потерю пакетов и их дублирование при передаче. UDP подобного не позволяет сделать и нацелен на простую передачу данных.
Однако приложение взаимодействует с уровнем TCP / UDP не напрямую, а через специальный API, который предоставляют сокеты. Сокеты — это
не какой-либо протокол, это просто интерфейс для создания сетевых приложений, который опирается на встроенные возможности операционной системы.
В зависимости от используемого протокола различают два вида сокетов: потоковые сокеты (stream socket) и дейтаграммные сокеты (datagram socket).
Потоковые сокеты используют протокол TCP, дейтаграммные — протокол UDP.
В итоге, когда приложение посылает сообщение приложению, запущенному на другом хосте, то приложение обращается к сокетам для передачи данных на уровень
TCP / UDP. Далее с этого транспортного уровня данные передаются сетевому уровню — уровню протокола IP. И этот протокол передает данные далее физическим уровням, и после этого данные уходят по сети.
Чтобы уникально определять хосты в сети каждый хост имеет адрес. Существует несколько различных протоколов адресов. В настоящее время наиболее распространен протокол
IPv4, который предполагает представление адреса в виде 32-битного числа, например, 37.120.16.63. Такой адрес содержит четыре числа, разделенных точками, и каждое число находится
в диапазоне от 0 до 255. Однако также в последнее время набирает оборот использование адресов протокола IPv6, которые представляют собой 128-битное значение.
Однако такие адреса очень сложно запомнить, поэтому в реальности чаще оперируют доменами. Домены представляют специальные названия, используемые для интернет-адресов.
Например, есть доменное имя «www.microsoft.com», ему соответствует адрес в формате IPv4 2.23.143.150. Но для протокола IP, через который идет взаимодействие, доменные адреса не существуют. Поэтому при отправке или передаче данных по доменному имени,
компьютер еще обращается к службам Domain Name System (DNS), который выполняют сопоставление между интернет-адресами в формате IPv4 или IPv6 и доменными названиями.
Кроме адреса при сетевых взаимодействиях используются порты. Порт представляет 16-битное число в диапазоне от 1 до 65 535.
Использование портов позволяет разграничить несколько запущенных приложений на одном хосте.
Собственно, это все базовые принципы взаимодействия по сети, которые надо знать. В реальности, как правило, при создании приложений не потребуется глубокого знания
всех протоколов и нюансов их работы. Если в редких случаях возникнет необходимость более детального знания протоколов, то в этом случае можно обратиться к специализированной литературе,
например, к книгам Олифера или Танненбаума.
Полное руководство работы с сетями на Python
Copyright © 2017 Packt Publishing
Первая публикация на английском языке: Июнь 2017
Ссылка на продукт:
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или
передана в любой форме или любыми средствами без предварительного письменного разрешения издателя,
за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации.
Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде.
Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки,
вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов,
упомянутых в данной книге для надлежащего использования капиталов.
Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN-13 978-1784397005
www.packtpub.com
2017-07-02
Состав исполнителей
- Авторы
- Эрик Чоу
- Рецензент
- Редактор выпуска
- Прачи Бишт
- Редактор разработки содержания
- Труша Шриян
- Технический редактор
- Варша Шивхэйр
- Литературный редактор
- Safis Editing
- Координатор проекта
- Кинджал Бейри
- Корректор
- Safis Editing
- Составитель указателя
- Прейтик Широдкар
- Координатор производства
- Найлиш Мохайт
- Графика
- Кирк Д’Пенья
Эрик Чоу
Сринивас Макам
.
.
Что охватывает эта книга
Глава 1. Обзор комплекта протокола TCP/IP и языка Python
Глава 2. Взаимодействие с сетевым устройством на нижнем уровне
Глава 3. Работа с сетями через API и для достижения целей
Глава 4. Инфраструктура автоматизации Python — основы Ansible
Глава 5. Инфраструктура автоматизации Python — дополнительные вопросы Ansible
Глава 6. Сетевая безопасность посредством Python
Глава 7. Мониторинг сетей при помощи Python — Часть 1
Глава 8. Мониторинг сетей при помощи Python — Часть 2
Глава 9. Построение сетевых веб служб с применением Python
Глава 10. Основы OpenFlow
Глава 11. Дополнительные темы OpenFlow
Глава 12. OpenStack, OpenDaylight и NFV
Глава 13. Гибридные SDN
Что вам нужно для этой книги
Чтобы следовать всем предоставляемым этой книгой примерам, вам понадобится доступ к вычислительной платформе,
способной исполнять Ansible. В настоящее время Ansible может работать на любой машине с установленным на ней
Python 2.6 или 2.7 (Windows не поддерживается в качестве управляющей машины). Это включает в себя Red Hat,
Debian, CentOS, OS X, любые из BSD и тому подобное.
Данная книга применяет выпуск Ansible 2.2.x.x.
Инструкции по установке Ansible можно найти на http://docs.ansible.com/ansible/intro_installation.html.
Некоторые примеры использования Docker, инструкции по установке Docker версии 1.12.6 могут быть найдены на
http://www.docker.com/community-edition.
Для кого эта книга
Эта книга предназначена разработчикам и операторам Ansible, которые имеют представление об основных элементах
и приложениях, но в настоящее время в поиске расширения своих познаний относительно применения автоматизации с
помощью Ansible.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами
информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов,
имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом:
«Мы применим это в некотором операторе failed_when
.
Блок кода записываются следующим образом:
- name: query sessions
command: /sbin/iscsiadm –m session
register: sessions
failed_when: sessions.rc not in (0, 21)
Когда мы хотим привлечь ваше внимание к некоторой определённой части блока кода, соответствующие строки и
элементы выделяются жирным шрифтом:
Любой ввод и вывод командной строки записываются так:
$ source ./hacking/env-setup
Новые термины и
важные слова отображаются жирным шрифтом. Слова,
которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом:
«Переместитесь в Networking support | Networking options |
802.1d Ethernet Bridging и выберите либо Y
для компиляции всей функциональности моста в данном ядре, либо
M для компиляции его в виде отдельного
модуля.»
Замечание | |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
Предостережение | |
---|---|
. |
Совет | |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обратная связь с читателями
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге — что
вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать
издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес
[email protected] с упоминанием
заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во
вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Поддержка пользователей
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам
в получении максимальной выгоды от вашей покупки.
Загрузка примеров кода
Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё,
вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по
электронной почте непосредственно на свой адрес.
Вы можете загрузить эти файлы с кодом выполнив следующие шаги:
Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.
Переместите указатель мыши на закладку SUPPORT
в верхней части.Кликните по Code Downloads & Errata.
Введите название книги в блок Search.
Выберите книгу для которой вы ищете для загрузки файлы исходного кода.
В ниспадающем меню выберите где вы приобрели эту книгу.
Кликните по Code Download.
Вы также можете загрузить фалы кодов кликнув по кнопке Code
Files вебстраницы на вебсайте Packt Publishing. Доступ к данной странице может быть получен
путём ввода названия книги в блоке Search.
Отметим, что вы должны быть зарегистрированы со своеЙ учётной записью Packt.
После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней
версии:
WinRAR / 7-Zip для Windows
Zipeg / iZip / UnRarX для Mac
7-Zip / PeaZip для Linux
Пакет с кодом для данной книги также размещён на GitHub по адресу
https://github.com/PacktPublishing/Mastering-Python-Networking.
У нас также имеются прочие наборы из нашего богатого каталога книг и видео доступные на
https://github.com/PacktPublishing/.
Следите за ними!
Загрузка цветных изображений данной книги
Также мы снабжаем вас неким PDF файлом, который имеет цветные изображения применяемых в данной книге снимков
экрана/ схем. Эти цветные изображения помогут вам лучше понять все изменения в имеющемся выводе. Вы можете
загрузить этот файл с
https://www.packtpub.com/sites/default/files/downloads/MasteringPythonNetworking_ColorImages.pdf.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны.
Если вы обнаружили ошибку в нашей книге — возможно, ошибку в тексте или в коде — мы будем признательны если
вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь
нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив
www.packtpub.com/submit-errata,
выбрав вашу книгу, кликнув на ссылку Errata Submission
Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы
получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень
существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support
и введите название нужной книги в поле поиска. Необходимая информация появится в разделе
Errata.
Незаконное тиражирование
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех
средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно.
Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста,
предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры.
{Прим. пер.: Согласно закону об авторском праве РФ, авторские права
на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации
основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений,
готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу [email protected] со ссылкой на материалы содержащие признаки нарушения
авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас
имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу
[email protected] и мы
предпримем все меры в отношении ваших проблем.
Создание нейронной сети без навыков программирования — Selectel — статьи, вакансии, фото, контакты на vc.ru
Рассказываем, как за несколько шагов создать простую нейронную сеть и научить её узнавать известных предпринимателей на фотографиях.
Шаг 0. Разбираемся, как устроены нейронные сети
Проще всего разобраться с принципами работы нейронных сетей можно на примере Teachable Machine — образовательного проекта Google.
В качестве входящих данных — то, что нужно обработать нейронной сети — в Teachable Machine используется изображение с камеры ноутбука. В качестве выходных данных — то, что должна сделать нейросеть после обработки входящих данных — можно использовать гифку или звук.
Например, можно научить Teachable Machine при поднятой вверх ладони говорить «Hi». При поднятом вверх большом пальце — «Cool», а при удивленном лице с открытым ртом — «Wow».
Для начала нужно обучить нейросеть. Для этого поднимаем ладонь и нажимаем на кнопку «Train Green» — сервис делает несколько десятков снимков, чтобы найти на изображениях закономерность. Набор таких снимков принято называть «датасетом».
Теперь остается выбрать действие, которое нужно вызывать при распознании образа — произнести фразу, показать GIF или проиграть звук. Аналогично обучаем нейронную сеть распознавать удивленное лицо и большой палец.
Как только нейросеть обучена, её можно использовать. Teachable Machine показывает коэффициент «уверенности» — насколько система «уверена», что ей показывают один из навыков.
Кроткое видео о работе Teachable Machine
Шаг 1. Готовим компьютер к работе с нейронной сетью
Теперь сделаем свою нейронную сеть, которая при отправке изображения будет сообщать о том, что изображено на картинке. Сначала научим нейронную сеть распознавать цветы на картинке: ромашку, подсолнух, одуванчик, тюльпан или розу.
Для создания собственной нейронной сети понадобится Python — один из наиболее минималистичных и распространенных языков программирования, и TensorFlow — открытая библиотека Google для создания и тренировки нейронных сетей.
Устанавливаем Python
Если у вас Windows: скачиваем установщик с официального сайта Python и запускаем его. При установке нужно поставить галочку «Add Python to PATH».
На macOS Python можно установить сразу через Terminal:
NN — библиотека для работы с нейронными сетями для микроконтроллеров ARM Cortex-M / Машинное обучение / RoboCraft. Роботы? Это просто!
Оказывается, ещё в январе, в стандартную библиотеку — CMSIS (Cortex Microcontroller Software Interface Standard) включили функционал для реализации нейронных сетей — CMSIS-NN.
Основанием для внесения подобного функционала в стандартную библиотеку, стало признание того, что с развитием интеллектуальных периферийных устройств, IoT и т.п. — нейронные сети становятся всё более популярными для выполнения задач аналитики данных сразу на месте, что позволяет уменьшить латентность системы, а также уменьшить энергопотребление, которое можно будет не затрачивать на передачу данных.
CMSIS-NN представляет собой набор функций для реализации нейронных сетей, разработанных для максимизации производительности и минимизации объема потребляемой памяти на процессорных ядрах ARM Cortex-M.
Библиотека содержит функционал:
свёрки (Convolution Functions),
активации (Activation Functions) (Sigmoid, Tanh, ReLU),
полносвязный слой (Fully-connected Layer Functions),
пулинг (Pooling Functions),
софтмакс (Softmax Functions),
вспомогательные функции.
Представление чисел
Традиционно, нейросетевые модели обучаются с использованием 32-битного представления данных числами с плавающей запятой (float32). Однако, при работе модели, такая высокая точность, как правило, не требуется.
Исследования показали, что нейронные сети хорошо работают даже с менее точным представлением данных.
В CMSIS-NN, операции проводятся над целыми числами (Fixed-point quantization), что помогает избежать дорогостоящих вычислений над числами с плавающей запятой, а также уменьшает требуемый объём памяти для хранения весов и активаций, что имеет решающее значение для платформ с ограниченными ресурсами.
@brief 8-bit fractional data type in 1.7 format.
typedef int8_t q7_t;
@brief 16-bit fractional data type in 1.15 format.
typedef int16_t q15_t;
Квантование выполняется с учетом формата с фиксированной запятой до степени двойки, то есть представленное значение будет равно A * 2**n
, где A — целое число, n — представляет собой целое число, указывающее основание счисления.
Коэффициенты масштабирования передаются для смещения (bias) и выхода в качестве параметров функций. Само масштабирование реализуются как побитовые сдвиги.
Быстродействие
Измеренное быстродействие для CIFAR-10 (цветная картинка 32×32, выход — 10 классов) на плате NUCLEO-F746ZG Mbed board с ядром Arm Cortex-M7, работающем на частоте 216 MHz, для 7-слойной свёрточной сети (3 раза — Convolution+Max Pooling) составило 99.1 ms на картинку (точность — 79.9%).
далее: STM32Cube.AI — пакет расширения для STM32CubeMX для встраивания нейронных сетей в микроконтроллеры STM32
Ссылки
New CMSIS-NN Neural Network Kernels Boost Efficiency in Microcontrollers by ~5x
CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs
CMSIS NN Software Library
https://github.com/ARM-software/CMSIS_5
Quant_guide
CMSIS-NN CIFAR10 Example
По теме
От Arduino к STM32
STM32: Урок 2 — Quickstart
uTensor — AI на микроконтроллерах
Глубокие нейронные сети как следующий этап развития программного обеспечения
Будущее глубокого обучения
Проблемы применения машинного обучения для решения реальных задач
Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN
главные тезисы вебинара «Молчановка онлайн» – PRO.Культура.РФ
17 апреля 2020 года состоялся вебинар «Молчановка онлайн. О работе региональной библиотеки в дистанционной форме». В этой статье ключевые тезисы встречи осветит ведущая вебинара Лариса Сулейманова, директор Иркутской областной государственной универсальной научной библиотеки им. И. И. Молчанова-Сибирского.
Размышляя о той ситуации, в которой оказались библиотеки вместе со всем миром и о том, как нам пришлось реагировать и что сделать для перехода на дистанционную работу, стоит обратить внимание на несколько вещей.
Первое – нам нужно больше говорить о своей работе, направленной на предоставление библиотечных услуг через сеть Интернет. Потому что даже у самой продвинутой части нашей аудитории представление об объеме, интенсивности и качестве этой работы библиотек далеко не полные.
Второе – нужно популярно объяснять, что работа онлайн и офлайн неразрывно связаны между собой, а не взаимоисключают друг друга. Библиотека – важный социальный институт, который возник для того, чтобы делать мир понятнее. В эту короткую формулу укладывается то огромное множество функций, которое описывается в профессиональной литературе по библиотечному делу, но совершенно ничего не говорит людям, для которых мы существуем.
Для реализации этой социальной миссии современные библиотеки не только формируют фонды и коллекции, занимаются структурированием информации, работают с обязательным экземпляром документов, создают библиографическую информацию и доводят ее до читателей, но и участвуют в удовлетворении массы социально-бытовых потребностей, в основе которых всегда есть зерно недостающей информации.
Три базовые библиотечные задачи сейчас
Сейчас, во время эпидемии новой коронавирусной инфекции, когда все мы сидим дома, чтобы не допустить ее неконтролируемого распространения, на первый план выходят три базовые библиотечные задачи:
- Структурирование информации (это неизменная функция библиотеки, без грамотного решения которой невозможна качественная работа на главную миссию – делать мир понятнее. Хоть в обычном режиме работы, хоть в дистанционном).
- Кураторство (сейчас как никогда ранее стало понятно, что главные дефициты современного мира – это время и внимание). При том обилии цифрового контента, который буквально в одночасье обрушился на человека, очень важно, чтобы предложение библиотек в экономике внимания было конкурентоспособным. А всегда ли это так? Это вопрос, над которым мы думаем сейчас, тщательно модерируя контент и критично, очень критично оценивая то, что наработано нами ранее.
- Медиация (термин, пришедший из судебной практики, как один из способов альтернативного урегулирования споров, рассматривается в данном контексте для библиотек как инструмент выстраивания общественного диалога. Этому набору компетенций нам всем надо учиться. И как можно быстрее).
Плохие библиотеки
создают коллекции. Хорошие библиотеки создают сервисы. Великие библиотеки
создают сообщества
создают коллекции. Хорошие библиотеки создают сервисы. Великие библиотеки
создают сообщества
Некоторое время назад цитата американского библиотекаря,
Дэвида Лэнкса, вызвала массу споров и жарких дискуссий. Обычно ее приводят в
таком виде: «Плохие библиотеки создают коллекции. Хорошие библиотеки создают
сервисы. Великие библиотеки создают сообщества». Эта цитата вызвала много
споров, потому что была вырвана из контекста. Позволю заметить, что она не
полна и на наш взгляд перевести ее можно (и нужно) несколько иначе: «Плохие библиотеки
заняты только формированием фондов. Хорошие создают сервисы (и фонды их часть).
Замечательные строят сообщества».
На самом деле речь идет о том, что библиотека работает как
своеобразная платформа обмена знаниями между людьми при посредничестве профессионального
библиотекаря. И речь идет вовсе не о проведении разного рода мероприятий. Речь
идет о том, что с помощью библиотеки (но совсем не обязательно в ней) человек
может встретиться в рамках разных форматов взаимодействия с другими людьми с
похожими и «смежными» информационными потребностями. В основе этих потребностей
лежит зерно информации, чтобы его распознать и заполнить дефицит нужен
специалист-библиограф.
Библиотекарь больше не
интроверт
интроверт
Нам очень мешает то, что психотип большинства библиотекарей
и библиографов – все еще интроверт. Нужно понимать, что сейчас требуется в
разы, в десятки раз больше коммуникации и взаимодействия с очень разными
целевыми аудиториями, которые мы, библиотекари, представляем себе очень
схематично. А нужно буквально составить портрет своего читателя. Понять, где,
как и какую информацию он запрашивает, и активно внедряться в эти сообщества.
Становиться «своим», зарабатывать авторитет и всеми силами, при любом случае
«оказывать услугу» – помогать. Только в этом случае заработает механизм личных
рекомендаций об обращении в библиотеку при любых обстоятельствах. Это серьезный
вызов для профессионального сообщества.
Медиаграмотность – важная профессиональная черта для
библиотекаря
Какие текущие задачи мы должны сейчас, условиях тотального
ограничения в передвижении, решать? Сейчас мы должны информировать, поддерживать,
успокаивать, помогать, развивать.
В библиотеках разных уровней в той или иной степени создана
и поддерживается инфраструктура, включающая серверы, компьютеры, хороший
интернет, программное обеспечение, кадры. Говоря о кадрах, мы должны иметь в
виду не только специалистов-автоматизаторов, программистов и системных
администраторов. Но в том числе и тех, кто несет основную нагрузку по
обслуживанию пользователей – рядовых библиотекарей и библиографов. Ситуация
предъявила высокие требования к уровню цифровой грамотности этих специалистов.
Кроме того, высветилась насущная необходимость формирования медиаграмотности,
развития медиакомпетенций. Это нужно учесть при составлении программ
профессионального образования и повышения квалификации, профессиональных
стандартов специалистов отрасли культуры в целом.
Выполнение
государственного задания
государственного задания
Немногие люди знают, что в государственных заданиях
библиотек есть такая форма оказания услуги по библиотечному обслуживанию как «удаленно
через сеть Интернет». Мы это делаем с помощью своих официальных сайтов, которые
служат точками входа к нашим электронным каталогам и базам данных, к
электронным библиотекам, тематическим разделам, другим электронным ресурсам,
создаваемым самими библиотеками. В последние годы в этот арсенал включены
соцсети и каналы библиотек на «Ютьюбе». И это сейчас передний край работы,
видимый всем.
На сайтах библиотек обязательным элементом для обслуживания
читателей онлайн является электронный каталог, по возможности – сводный
электронный каталог библиотек региона. Еще лучше, если есть мобильное
приложение с доступом в личный кабинет читателя. Важно, чтобы с сайта был
доступ к краеведческим базам данных – универсальным и тематическим, виртуальной
справочной службе типа «Спроси библиотекаря». Сейчас, когда мы отрезаны от
своего фонда, выручает подписка на электронные библиотеки, например, «ЛитРес»,
другие подписные базы данных. В связи с этим выявилась актуальная проблема
удаленной записи новых читателей в библиотеку. К сожалению, мы не можем в
настоящий момент подтверждать личность при очном посещении. Эта ситуация
характерна для всех библиотек страны. Совершенно очевидно, что грамотным
технологичным решением для всех была бы возможность записи в библиотеки при
помощи учетной записи на портале «Госуслуги».
Краеведческие ресурсы
Особое значение в обслуживании онлайн имеют краеведческие
ресурсы – тематические сайты и разделы, литературная карты регионов,
электронные библиотеки и коллекции полнотекстовых документов (в большинстве
регионов они именно краеведческие). Они обеспечивают устойчивый спрос на
краеведческую информацию и имеют стабильную аудиторию пользователей.
На 17 апреля 2020 г. общее количество доступных в
электронной краеведческой библиотеке «Хроники Приангарья» без совсем малого 270
тысяч документов, в том числе: книг – 988; неопубликованных материалов – 524;
наименований газет и журналов – 410; отдельных номеров газет и журналов – 190 207;
описаний отдельных статей со ссылками на полные тексты – 51 103; графических
объектов – 25 693. С 2016 года наблюдается стабильный рост аудитории «Хроник
Приангарья» – с 2 567 уникальных посетителей в 2015 году до 17 476 за 2019 год.
Только за период работы в дистанционном формате – с 21 марта по 17 апреля 2020
года было 5 383 визитов. Среднее время визита – 21 минута; просмотров
отсканированных страниц непосредственно на сайте – 28 тыс. Нельзя утверждать о
наличии какого-либо всплеска интереса к ресурсу, но можно утверждать и об
отсутствии его падения. То есть эта услуга стабильна, востребована и приносит
нам «постоянный доход» в виде пользователей, просмотров и скачиваний.
В формировании фонда «Хроник Прангарья» участвуют уже 46
библиотек Иркутской области. Ими самостоятельно оцифровано и передано на описание,
распознавание и регистрацию 33 386 номеров газет и около 1000 непериодических
материалов, включая неопубликованные нигде ранее. Мы берем на себя
обязательство хранить и обеспечивать безопасность оцифрованных материалов и
предоставлять статистику обращений к ним. Библиотеки получают возможность, минуя
решение огромного количества технологических задач, надежно хранить контент и
предоставлять к нему доступ своим читателям. Это особенно важно для работы в
текущих условиях.
Дистанционное
обслуживание
обслуживание
Основная нагрузка по осуществлению дистанционного
обслуживания сейчас легла на соцсети, включая прямые эфиры прямо из дома,
мессенджеры, Skype, Zoom и другие доступные
платформы онлайн конференций. Канал на «Ютьюб» стал площадкой для доступа к
записям онлайн-мероприятий, востребованы и созданные ранее видеоматериалы. Но
для многих библиотек из-за недооценки потенциала этих каналов коммуникации
работа в соцсетях представляется чем-то далеко не обязательным, факультативным
и даже излишним. И это, как сейчас видно, большая ошибка. Этой теме стоит
уделить особое внимание, но не столько с точки зрения их ведения, сколько с
точки зрения организации процесса.
Бренд библиотеки в
социальных сетях
социальных сетях
Молчановка – зонтичный бренд. Основные аккаунты «ВКонтакте», «Фейсбук», «Инстаграм», «Одноклассники»,
канал Молчановки на «Ютьюб». Тематические
группы – основные «Иностранный в Молчановке» (в ФБ и ВК), «О книгах и
книжниках» (в ФБ и ВК), «Большой проект Библиотек Приангарья» (в ФБ, ВК, ОК),
«Хроники Приангарья» (в ФБ), профессиональная группа «Библиотеки Прианграья» (в
ФБ), а также паблики и группы отдельных проектов и мероприятий.
Система работы Молчановки в соцсетях складывалась несколько
лет. Работе в соцсетях мы придаем большое значение и рассматриваем ее не только
в качестве рекламы услуг и мероприятий библиотеки, но и как средство
оперативного диалога с целевыми аудиториями пользователей, площадку для
осуществления кураторской функции библиотеки в цифровой среде. Для нас это как
скоростной лифт доставки сообщений миру и получения обратной связи. Цели нашего
присутствия мы обозначаем вполне конкретно: повысить свою популярность,
рассказать о своей работе, позвать на мероприятия, порекламировать фонд
библиотеки и так далее. Вариантов может быть много. Каждая библиотека
формулирует свои цели, исходя из той ситуации, в которой живет.
Организационная система
по работе в социальных сетях
по работе в социальных сетях
У нас в библиотеке на данный момент сложилась определенная
организационная система, направленная на поддержание объема, качества и полноту
охвата деятельности библиотеки, которая освещается в соцсетях как в целом, так
и по отдельным направлениям.
Как это отражено в локальных нормативных актах? Во-первых, в
уставе библиотеки в перечне видов деятельности есть «информационная». Следующий
уровень локальной нормативной документации – положения об отделах. Задачу по
организации, координации, планированию, контролю качества, составлению отчетности,
методическому руководству работой в соцсетях занимается сектор по связям с общественностью
и рекламе отдела культурных программ. Между сотрудниками сектора закреплены
определенные каналы коммуникации, конкретные страницы и группы. Действует
принцип взаимозаменяемости на время отпуска, болезни, командировки.
В положениях всех остальных отделов записана задача по
осуществлению информирования пользователей через сайт, по телефону, при личном
обращении и соцсети. Эта же задача «перекочевала» во все должностные инструкции
основного персонала. Такое масштабное отражение в нормативной документации дает
право по мере необходимости привлекать к данной работе любого сотрудника
библиотеки, за исключением технического персонала.
Это, конечно, не значит, что все сотрудники работают в
соцсетях. Но это дало нам возможность, с одной стороны, привлекать тех, кто
нужен. С другой стороны – поощрять конкретных людей морально и материально (за
счет стимулирующих выплат) по результатам работы.
Приказом директора
создана Служба продвижения в социальных сетях, в которую входят сотрудники
разных отделов. Служба нужна нам для того, чтобы оперативно отражать весь объем
работы крупной библиотеки. Сотрудники рассказывают каждый со своего рабочего
места о том, что интересного происходит в библиотеке, о новых книгах, о
библиотечных процессах и т. д.
Есть перечень показателей количества и качества работы в
соцсетях, который позволяет оценить работу сотрудника. В него входят как
количественные, так и качественные параметры. Количество постов в неделю, время
отклика на комментарии, их качество. Выбор информационных поводов,
оперативность, соответствие теме текста и фотографий (их сотрудники обычно
делают сами на смартфон). «Никакие», дежурные, не цепляющие тексты в зачет не
идут. Человек получает тут же обратную связь от своего куратора из сектора по
связям с общественностью. Мы оцениваем качество конкретного поста не только по
количеству лайков и комментариев, но в целом по конверсии, степени привлечения
позитивного внимания и качеству взаимодействия с аудиторией, помогаем адекватно
реагировать на негатив.
Еще хочу остановиться
на вопросе корпоративной этики поведения сотрудников, пишущих в соцсетях,
включая личные аккаунты. Никакого стандарта или протокола у нас нет. Возможно,
это минус. Но задекларировать можно что угодно. Главное, чтобы была реальная, а
не мнимая лояльность. Мы решаем эту задачу другими способами. Каждый
новичок-блогер работает в паре с куратором и получает обратную связь до тех
пор, пока не достигнет уровня компетенций, достаточного для самостоятельной
работы в соцмедиа.
Дистанционный режим
работы библиотеки
работы библиотеки
В стандартный перечень дистанционных услуг и мероприятий входят
виртуальные справки, продление книг, выдача из «ЛитРес», доступ к краеведческим
материалам, записи чтений книг, виртуальные выставки, видеотрансляции,
вебинары. Задача организации и проведения онлайн мероприятий достаточно новая.
Здесь возможная большая свобода в выборе тем, но приходится учитывать
ограничения, связанные с форматом общения с аудиторией, качеством связи и
возможностями использования бесплатных сервисов.
Для организации работы библиотеки на дистанционный режим
были переведены сотрудники, должностные обязанности которых позволяют им
работать из дома. С технической точки зрения организовано подключение
сотрудников к дистанционной работе в автоматизированной библиотечно-информационной
системе (АРМ «Каталогизатор»), защищенный дистанционный доступ к локальной сети
библиотеки для обеспечения текущей деятельности, дистанционный доступ к
корпоративной электронной почте для всех отделов, доступ к проведению вебинаров
в дистанционном режиме на образовательном канале библиотеки. Для руководства
отделами созданы корпоративные чаты в WhatsApp. Ежедневно сотрудники оповещают непосредственного
руководителя о состоянии здоровья, запланированной и проделанной работе.
Кроме обслуживания пользователей ведется административная, методическая,
библиографическая, краеведческая работа, проектная деятельность, работа отдела
автоматизации, осуществляется связь с общественностью.
Рекомендации для
библиотек по переходу на дистанционный режим работы
библиотек по переходу на дистанционный режим работы
В качестве рекомендации библиотекам, которые по какой-либо
причине не могут обеспечить все необходимое для поддержания подобного сценария
дистанционной работы, а также для небольших и совсем маленьких библиотек,
советую обратиться к созданным на федеральном уровне ресурсам. Это Национальная электронная библиотека и портал «Культура.РФ». Здесь представлен качественный
контент, который нужно отбирать в соответствии с запросами пользователей
конкретной библиотеки. В качестве каналов продвижения информации в условиях
небольших сообществ, в которых люди хорошо знакомы друг с другом, лучше
пользоваться мессенджерами.
Для организации работы в соцсетях рекомендую изучить пособие, подготовленное командой «PRO.Культура.РФ» задолго до наступления эпидемии коронавируса, и
обратиться за помощью к коллегам, которые начали эту работу раньше и могут
поделится своим опытом.
Нам всем нужно понять, что не стоит противопоставлять друг
другу работу библиотек в онлайн и офлайн. Это стороны одной медали и одно для
другого – необходимое условие. Нам всем не хватает сейчас читателей и коллег.
Люди соскучились по библиотекам, и это радует. Ведь информация становится
знанием только тогда, когда она произвела изменения к лучшему в одной отдельно
взятой голове и душе. Для этого мы и формируем сообщества всеми доступными нам
способами.
Автор – Лариса Сулейманова, директор Иркутской областной
государственной универсальной научной библиотеки им. И. И. Молчанова-Сибирского.
HTTPS-библиотек для разработчиков (2018)
Superpowered Networking — это ведущая кросс-платформенная библиотека C ++ для создания сетевых и интернет-приложений, которые работают на настольных, серверных, мобильных, IoT и встроенных системах.
Подпишитесь на бета-доступ сейчас.
Примеры опций сетевой библиотеки C ++
1. Сверхмощная сетевая библиотека.
HTTP-соединение, включая авторизацию носителя для современных приложений на основе OAuth, включая полный стек SSL для HTTPS.Сверхбыстрые криптографические функции для криптографии AES, SHA, с открытым и закрытым ключом. Полностью кроссплатформенный.
2. Apache Serf.
Библиотека serf — это клиентская библиотека HTTP на основе C, созданная на основе библиотеки Apache Portable Runtime (APR)
3. Boost Asio.
Boost предоставляет рецензируемые переносимые библиотеки исходного кода C ++.
4. cpp-netlib.
Cpp-netlib содержит реализацию HTTP-клиента и сервера, автономную библиотеку URI, структуру сетевых сообщений и некоторые инструменты параллелизма.
5. cpr.
Cpr — это современная HTTP-библиотека для C ++.
6. дл.
Dlib — это современный набор инструментов C ++ для создания программного обеспечения на C ++ для решения реальных проблем.
7. libcurl.
Libcurl — это многопротокольная библиотека передачи файлов.
8. libghttp.
Libghttp содержит клиентскую библиотеку HTTP GNOME 1.4.
9. libhttp.
LibHTTP — это библиотека, написанная на C, реализующая сервер HTTP / HTTPS с возможностями веб-сокета.
10. libmicrohttpd.
Libmicrohttpd — это библиотека C, которая должна упростить запуск HTTP-сервера как части другого приложения.
11. Библиотека libsoup.
Libsoup — это клиент-серверная HTTP-библиотека для GNOME.
12. Библиотека libsourcey.
LibSourcey — это набор кросс-платформенных модулей и классов C ++ 11, которые предоставляют разработчикам арсенал для разработки сетевых приложений p2p и потокового мультимедиа.
13.либтины.
Libtins — это высокоуровневая многоплатформенная библиотека для анализа и создания сетевых пакетов C ++.
14. libwww.
Libwww — это модульный клиентский веб-интерфейс общего назначения, написанный на C для Unix и Windows (Win32).
15. Неон.
Neon — это клиентская библиотека HTTP и WebDAV с интерфейсом C.
16. ZeroMQ.
ZeroMQ (также известный как ØMQ, 0MQ или zmq) выглядит как встраиваемая сетевая библиотека, но действует как среда параллелизма.
17. PcapPlusPlus.
PcapPlusPlus — это многоплатформенная платформа C ++ для анализа сети, анализа и создания пакетов.
18. Библиотеки POCO.
Библиотеки POCO C ++ — это кроссплатформенные библиотеки C ++ для создания сетевых и интернет-приложений.
19. Сеть Qt.
Qt Network предоставляет набор API для программирования приложений, использующих TCP / IP. Такие операции, как запросы, файлы cookie и отправка данных через HTTP, обрабатываются различными классами C ++.
20. RakNet.
RakNet — это игровой движок, управляющий исключительно сетевыми и связанными сервисами.
Сравнение функций сетевой библиотеки C ++
Где я могу найти полезное руководство по сетевому программированию на C ++?
- Примеры проектов и руководств со сверхмощным аудио.
- Переполнение стека.
- Reddit.
- GeeksForGeeks.
- Форумы DreamInCode.
- C ++
- Сетевая библиотека C ++
- Superpowered Audio
.Сетевое программирование
— игровые сетевые библиотеки в реальном времени для игр на Java и Objective-C
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.
dlib Библиотека C ++ — Сеть
[вверх]
Этот объект является инструментом для соединения объекта канала между
два сетевых приложения.
Объект-мост предназначен для соединения двух труб так же эффективно, как
возможное. Чтобы продемонстрировать его скорость, я провел два эксперимента с мостом.
используется для подключения настольного ПК к ноутбуку, работающих под управлением Ubuntu 12.04 и
подключен через гигабитный Ethernet.Первый эксперимент — проверить его объем
скорость передачи, в то время как второй эксперимент измеряет, сколько отдельных объектов
мост может передавать каждую секунду.
В первом эксперименте 1-мегапиксельные изображения, представленные
объекты массива
112 мегабайт / сек, насыщая гигабитный канал Ethernet. Секунда
В эксперименте использовалась труба
переменные char по сети.В этом эксперименте я смог
отправлять 3,2 миллиона объектов в секунду (т.е. принимающая сторона получала char
назад из pipe :: dequeue () 3,2 миллиона раз в секунду).
Для справки, эти эксперименты проводились на настольном компьютере с тактовой частотой 2,67 ГГц.
Процессор Intel Core-i7 и ноутбук с процессором Intel Core-i7 2,20 ГГц.
Примеры программ C ++: bridge_ex.cpp
[вверх]
Эта функция порождает задание BSP, состоящее из нескольких сетевых хостов
а также локальный хост.
Примеры программ C ++: bsp_ex.cpp
[наверх]
Это инструмент, используемый для реализации алгоритмов с использованием массового синхронного
Модель параллельных вычислений (BSP). В частности, этот объект определяет
API, используемый для связи между заданиями BSP.
Примеры программ C ++: bsp_ex.cpp
[вверх]
Эта функция прослушивает TCP-соединение от подпрограммы bsp_connect.
Как только это соединение будет установлено, будет выполнена пользовательская функция, и она будет
затем иметь возможность участвовать в вычислении BSP в качестве одной из обработок
узлы.
Примеры программ C ++: bsp_ex.cpp
[вверх]
Эта функция прослушивает TCP-соединение от подпрограммы bsp_connect.
Как только это соединение будет установлено, будет выполнена пользовательская функция, и она будет
затем иметь возможность участвовать в вычислении BSP в качестве одной из обработок
узлы. Эта функция имеет дополнительную возможность выбрать прослушиваемый TCP-порт.
автоматически из набора доступных портов.
[вверху]
Это объект iostream, который читает / записывает из сетевого соединения TCP.
Примеры программ C ++: iosockstream_ex.cpp
[вверху]
Этот объект представляет собой нечто, требующее двух соединений и позволяющее
они разговаривают друг с другом. т.е. любые входящие данные от одного соединения
передается без изменений в другой и наоборот.
[вверх]
Этот объект представляет сервер, который прослушивает порт и порождает новые
потоки для обработки каждого нового соединения. Он также управляет подключениями
и темы для вас.
Примеры программ C ++: sockets_ex.cpp
[вверх]
Это расширение объекта сервера, которое переопределяет
функция on_connect (), чтобы вместо предоставления вам объекта подключения вы
получить объект istream и ostream.
Примеры программ C ++: server_iostream_ex.cpp
[вверху]
Этот объект представляет буфер потока для объектов соединения. если ты
рассматриваете возможность использования этого объекта, вам также следует взглянуть на
iosockstream.
Примеры программ C ++: sockstreambuf_ex.cpp
.
Библиотека | Описание | Лицензия | Конфигурация |
---|---|---|---|
Аквила | |||
FFTW | библиотека для вычисления ДПФ | ||
КФР | Быстрая, современная структура DSP, DFT / FFT, передискретизация звука, фильтры FIR / IIR, Biquad | ||
звукосниматель | |||
Библиотека | Описание | Лицензия | Конфигурация |
контрольный показатель | Библиотека для тестирования фрагментов кода, аналогичная модульным тестам. | Лицензия Apache 2.0 | CMake |
Celero | Лицензия Apache | CMake | |
gperftools | «Google Performance Tools» включает высокопроизводительную многопоточную реализацию malloc, а также инструменты для тестирования распределения кучи и использования ЦП. | BSD с 3 пунктами «Новая» или «Пересмотренная» лицензия | настроить |
plf :: нанотаймер | Класс кросс-платформенного простого таймера с наименьшими издержками для сравнительного анализа. | zlib лицензия | |
Библиотека | Описание | Лицензия | Конфигурация |
ACE | асинхронная сеть, демультиплексирование событий, обмен сообщениями | ||
Apache Thrift | Программный фреймворк Apache Thrift для масштабируемой разработки межъязыковых сервисов объединяет программный стек с движком генерации кода для создания сервисов, которые эффективно и без проблем работают между C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C # , Какао, JavaScript, Node.js, Smalltalk, OCaml и Delphi и другие языки. | ||
Boost.Asio | асинхронная и синхронная сеть, таймеры, последовательный ввод / вывод | ||
Boost.Beast | HTTP и WebSocket, построенная поверх Boost.Asio | ||
Разрыв | Одноранговая библиотека высокого уровня на основе событий, позволяющая пользователям напрямую отправлять и получать объекты. | Общественная лицензия Европейского Союза 1.1 | CMake |
Пакет SDK для C ++ REST | асинхронный HTTP-клиент и слушатель, асинхронный поток, URI, JSON | Лицензия MIT | CMake |
C ++ RESTful framework | C ++, предназначенный для встраивания в широкий спектр приложений. | CMake | |
cpp-netlib | cpp-netlib: Сетевая библиотека C ++ | Boost 1.0 | CMake |
спр | современная библиотека HTTP-запросов C ++ | Лицензия MIT | CMake |
завиток | C ++ оболочка для библиотеки CURL | ||
EasyHttp | Кросс-платформенная клиентская библиотека HTTP, ориентированная на удобство использования и скорость, поддерживающая кеширование HTTP-ответов и многое другое. | Лицензия MIT | CMake |
eCAL | высокопроизводительное межпроцессное взаимодействие | Лицензия Apache 2.0 | CMake |
финфтп-сервер | для windows и unix | Лицензия MIT | CMake |
gRPC | gRPC — это современная высокопроизводительная среда RPC с открытым исходным кодом, которая может работать в любой среде. | ||
г мыла | C / C ++ для привязок данных XML, быстрых веб-служб WSDL / SOAP / XML, WS-Security, служб RESTful JSON / XML-RPC | ||
HTTPP | Простой, готовый к работе HTTP-сервер, созданный на основе Boost, и клиент, созданный на основе libcurl. | BSD, «Упрощенная» лицензия из 2 пунктов | CMake, Makefile |
IXWebSocket | Открытый исходный код WebSocket + HTTP-библиотека без зависимости, поддерживает SSL и расширение WebSocket для дефлятирования сообщений. | BSD с 3 пунктами «Новая» или «Пересмотренная» лицензия | CMake, Makefile |
ККТ | Быстрый и надежный протокол ARQ, помогающий приложениям уменьшить задержку в сети. | Лицензия MIT | CMake |
libashttp | асинхронная клиентская библиотека HTTP | Стандартная общественная лицензия ограниченного применения GNU v3.0 | |
libnavajo | C ++, включая быстрый многопоточный HTTP-сервер, веб-узлы HTML5, SSL, X509 и HTTP-аутентификацию, сжатие, файлы cookie и расширенное управление сеансами, IPv4 и IPv6 (CeCILL-C). | ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С БЕСПЛАТНЫМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ CeCILL-C | CMake |
либтинов | Библиотека создания и анализа сетевых пакетов | ||
нанометров | быстрая очередь сообщений, преемник zeromq | ||
Нетиф | Библиотека C ++ 14 только для заголовков для получения сетевых адресов в Windows, Linux, macOS и FreeBSD. | BSD с 3 пунктами «Новая» или «Пересмотренная» лицензия | CMake |
nghttp2 | HTTP / 2 C Библиотека и инструменты (сервер, клиент, прокси и инструменты для тестирования) | Лицензия MIT | CMake, настроить |
нгрест | Быстрая и простая в использовании JSON RESTful Web Services Framework | Apache License 2.0 | CMake |
ннг | быстрая очередь сообщений, преемник nanomsg | ||
omniORB | — самая быстрая, полная и переносимая реализация CORBA ORB на C ++ | ||
OpenDDS | DDS | ||
Paho MQTT | Современный клиент C ++ для MQTT от Eclipse | CMake | |
PcapPlusPlus | Мультиплатформенная структура C ++ для анализа сетей, синтаксического анализа и создания пакетов | ||
POCO | сеть: шифрование, HTTP; ZIP-файлы | ||
rest_rpc | современный, простой и легкий в использовании фреймворк rpc | CMake | |
restc-cpp | Упрощает доступ к JSON API из C ++.HTTP-клиент, собственный класс C ++ в / из сериализации JSON, асинхронный ввод-вывод через сопрограммы boost :: asio. С ++ 14. | Лицензия MIT | CMake |
restful_mapper | ORM для использования API RESTful JSON в C ++ | CMake, Makefile | |
морской звезд | Высокопроизводительный фреймворк серверных приложений, основанный на C ++ 14 / C ++ 17. | Apache License 2.0 | CMake и др. |
Простая библиотека REST C ++ | Очень простая и самодокументированная библиотека для создания REST API в вашем приложении C ++ | ||
Sockpp | Простая современная библиотека сокетов C ++ | BSD с 3 пунктами «Новая» или «Пересмотренная» лицензия | CMake |
поток-клиент | Облегченный клиентский сокет / коннектор / пул сокетов / резольвер на основе только заголовков | Лицензия Apache 2.0 | CMake |
такопи | C ++ 11 Библиотека TCP | Лицензия MIT | CMake |
ТАО | CORBA | ||
taox11 | C ++ 11 | Лицензия MIT | |
Веб-платформа Silicon C ++ 14 | Быстрые и надежные веб-API | MIT | |
Unicomm | асинхронная сеть, высокоуровневая структура связи TCP | ||
УФВ | обертка libuv в современном C ++ | Лицензия MIT | CMake |
wvstreams | |||
zeromq | очередь быстрых сообщений | ||
Библиотека | Описание | Лицензия | Конфигурация |
BlockingCollection | Поточно-безопасный класс коллекции C ++ 11, созданный по образцу.NET BlockingCollection. | ||
Boost.Atomic | |||
Boost.Compute | (неофициальные) STL-подобные алгоритмы и структуры данных для OpenCL | ||
Boost.Context | |||
Повышение межпроцессного режима | |||
Boost.Lockfree | |||
Boost.MPI | |||
Повыш. Резьба | |||
бедра | предоставляет набор инструментов на основе clang и реализацию SYCL во время выполнения, которая может работать на нескольких целевых устройствах (NVIDIA / AMD GPU, s CPU) | ||
л.с. | Среда выполнения C ++ общего назначения для параллельных и распределенных приложений любого масштаба | ||
Intel TBB | |||
КОККОС | Модель программирования на C ++ для написания высокопроизводительных портативных приложений HPC. | ||
libopenmpi | |||
libsimdpp | Переносимая низкоуровневая SIMD-библиотека C ++ с нулевыми накладными расходами только для заголовков. | Boost Лицензия | CMake |
MutexGear | Синхронизация только мьютекса (колесо, rwlock, рабочие очереди) | Лицензия библиотеки MutexGear | настроить, MSVC |
OpenMP | |||
RaftLib | поток C ++ как одновременные участники | ||
SObjectizer | Небольшая структура для упрощения разработки параллельных и событийно-управляемых приложений на C ++ с использованием моделей актора и публикации-подписки. | ||
подпроцесс | кроссплатформенная библиотека для запуска подпроцессов. | ||
Последовательность задач | Программирование параллельных задач в современном C ++ | ||
Тяга | STL-подобные алгоритмы и структуры данных для CUDA | ||
VexCL | для OpenCL и CUDA | ||
ВенаCL | Линейная алгебра и алгоритмы с бэкэндами OpenMP, CUDA и OpenCL | ||
Ксений | Библиотека только для заголовков, обеспечивающая различные параллельные структуры данных и схемы восстановления. | ||
Библиотека | Описание | Лицензия | Конфигурация |
ai-xml | Сериализуйте объекты в и из XML, добавив в класс одну минимальную функцию. Использует libxml ++ под капотом. | ||
GPDS | Сериализатор данных общего назначения для сериализации объектов в XML и обратно. Использует TinyXML под капотом. | ||
gSOAP | привязки данных XML | ||
libxml ++ | |||
pugixml | |||
tinyxml | |||
крошечный xml2 | Другой и незавершенный TinyXML. | ||
Xerces | |||
Библиотека | Описание | Лицензия | Конфигурация |
ArduinoJson | ArduinoJson | ||
КАДЖУН | |||
Янссон | Jansson — это библиотека C для кодирования, декодирования и управления данными JSON. | ||
jeayeson | Очень разумная (только заголовок) библиотека C ++ 14 JSON | ||
jios (потоки ввода-вывода JSON) | |||
JOST | |||
JSON Voorhees | Killer JSON для C ++ | ||
json | Нильс Ломанн JSON | ||
JSON ++ | |||
json-cpp | |||
json11 | json11 — это крошечная библиотека JSON для C ++ 11, обеспечивающая синтаксический анализ и сериализацию JSON. | ||
JsonBox | |||
jsoncons | Библиотека только для заголовков для форматов данных JSON и JSON с указателем JSON, патчем JSON, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. | ||
jsoncpp | |||
jsonme— | |||
libjson | |||
minijson | C ++ Разбор и сериализация JSON без DOM и без выделения памяти | ||
без работы | |||
qjson | |||
rapidjson | |||
simdjson | Разбор гигабайт JSON в секунду | ||
struct_mapping | Отображение json в структуру c ++ и обратно | ||
ThorsSerializer (потоки ввода-вывода JSON / YAML) | |||
ujson | µjson — небольшая библиотека C ++ 11, UTF-8, JSON. | ||
зоолиб | |||
Библиотека | Описание | Лицензия | Конфигурация |
томл ++ | Парсер и сериализатор TOML для C ++ 17 и новее | ||
toml11 | TOML на основе C ++ 11 | ||
Библиотека | Описание | Лицензия | Конфигурация |
cpp-hocon | Реализация C ++ формата HOCON, разработанная Pupplet. | ||
Библиотека | Описание | Лицензия | Конфигурация |
Boost.Любое | |||
Boost.Array | |||
Boost.Bimap | |||
Boost.Container | |||
Boost.Fusion | |||
Boost.Heap | |||
Контейнер Boost.Pointer | |||
Boost.Tuple | |||
Boost. Вариант | |||
cpp-btree | btree_map, btree_set, btree_multimap, btree_multiset. | ||
DataFrame | C ++ DataFrame для статистического, финансового и машинного анализа — в современном C ++ с использованием собственных типов, непрерывного хранения в памяти и без использования указателей | BSD-3-Пункт | CMake, Makefile, Конан |
яиц :: вариант | Eggs.Variant — это универсальное типобезопасное, размеченное объединение C ++ 11/14. Он примечателен, в частности, очень хорошей поддержкой constexpr. | ||
Замороженный | constexpr замороженные наборы и карты на основе идеального хеширования | Apache 2.0 | |
plf :: колония | Неупорядоченный контейнер типа «мешок», который превосходит std :: container в сценариях с высокой степенью модификации, сохраняя действительные указатели на нестертые элементы независимо от вставки и стирания. | ||
plf :: список | std :: list, которая жертвует объединением диапазонов ради удобства кеширования, обеспечивая более быструю вставку, стирание и итерацию. | ||
plf :: стек | Вставляемый замещающий контейнер для адаптера контейнера std :: stack с лучшей производительностью, чем std :: vector и std :: deque в контексте стека. | ||
кольцо_спан | Упрощенная реализация ring_span Артура О’Двайера — т.е. круговой буферный вид. | ||
strict_variant | Быстрый, никогда не пустой вариант, ориентированный на C ++ 11.Предотвращает многие нежелательные неявные преобразования. | ||
Tdh Списки | |||
Игг | Навязчивая реализация C ++ 11 высокопроизводительных контейнеров и структур данных, таких как красно-черное дерево, дерево интервалов и карта интервалов. | ||
Библиотека | Описание | Лицензия | Конфигурация |
cpp-redis | C ++ 11 Облегченный клиент Redis: асинхронный, поточно-ориентированный, без зависимостей, конвейерная обработка, мультиплатформенность. | ||
ДТЛ | |||
EasyQtSql | Облегченная библиотека C ++ 11, содержащая только заголовки, для быстрого и удобного выполнения запросов SQL с помощью QtSql. | ||
УровеньDB | Библиотека C ++, разработанная Google, которая поддерживает постоянное хранение данных типа «ключ-значение» в миллиардном масштабе. | ||
libpqxx | |||
lmdb ++ | C ++ 11 оболочка для встроенной библиотеки базы данных B + tree LMDB. | ||
mongocxx | C ++ 11 для MongoDB | ||
MySQL + + | |||
ODB — объектно-реляционное сопоставление C ++ (ORM) | |||
OTL | |||
Pgfe — PostGres FrontEnd | Современный клиентский API C ++ для PostgreSQL | ||
QTL | Дружественная и легкая библиотека баз данных C ++ для MySQL, SQLite и ODBC. | ||
АЙВА: ЗАПРОСЫ В ВЫРАЖЕНИЯХ C ++ (ORM + EDSL) | |||
QxOrm — объектно-реляционное сопоставление (ORM) C ++ Qt | |||
Redis-CPP | C ++ 17 Облегченная клиентская библиотека C ++, предназначенная только для заголовков, для выполнения команд Redis. | ||
редис-плюс-плюс | Клиент Redis, написанный на C ++ 11 и поддерживающий Redis Sentinel, Redis Cluster, конвейер, транзакцию, pubsub, пул соединений и интерфейс, подобный STL. | ||
СОЦИ | |||
SQLAPI ++ | |||
SQLiteCPP | |||
sqlpp11 | |||
Библиотека | Описание | Лицензия | Конфигурация |
искажений | объектно-ориентированная ОСРВ на C ++ для микроконтроллеров | ||
ETL — встроенная библиотека шаблонов | C ++ 03, Переносимая библиотека шаблонов для платформ с низким уровнем ресурсов | ||
QP / C ++ | RTOS, двойная GPL | ||
µcuREST | C ++ 11 серверная среда REST / JSON для микроконтроллеров | ||
Библиотека | Описание | Лицензия | Конфигурация |
DataFrame | C ++ DataFrame для статистического, финансового и машинного анализа — в современном C ++ с использованием собственных типов, непрерывного хранения в памяти и без использования указателей | BSD-3-Пункт | CMake, Makefile, Конан |
QuantLib — Библиотека количественных финансов | |||
Библиотека | Описание | Лицензия | Конфигурация |
Кигс-каркас | Модульная многоцелевая кроссплатформенная платформа | лицензия MIT | |
openFrameworks | |||
SDL (простой уровень DirectMedia) | кроссплатформенный, низкоуровневый доступ к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через графический API этой платформы (обычно OpenGL или Direct3D) | zlib лицензия | |
SFML (простая и быстрая мультимедийная библиотека) | |||
SIGIL (Библиотека интеграции звука, ввода и графики) | ошеломляюще простая кроссплатформенная минималистичная библиотека для текста, фигур, ввода, звука и 2D-изображений | ||
Библиотека | Описание | Лицензия | Конфигурация |
Спуск | Коллекция кода библиотеки C ++ с открытым исходным кодом от Google, предназначенная для расширения стандартной библиотеки C ++. | ||
Абстрактные интрузивные контейнеры | Более гибкий, чем boost :: навязчивый, но не совместимый со STL. | ||
BDE | Основные библиотеки среды разработки Bloomberg от Bloomberg L.P. | Лицензия Apache | |
Лучшие перечисления | Отражающие перечисления (перечисление в строку, итерацию и т. Д.) С constex |
.