{"id":25539223,"url":"https://github.com/rohanvdvivedi/connman","last_synced_at":"2026-02-01T20:30:15.412Z","repository":{"id":60252073,"uuid":"211717916","full_name":"RohanVDvivedi/ConnMan","owner":"RohanVDvivedi","description":"Multithreaded network connection handler library in C.","archived":false,"fork":false,"pushed_at":"2024-08-17T18:02:21.000Z","size":622,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-18T08:23:29.481Z","etag":null,"topics":["connection-pool","multithreaded-server","tcp","tcp-client","tcp-server","udp","udp-client","udp-server"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RohanVDvivedi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-29T19:52:19.000Z","updated_at":"2024-08-17T18:02:24.000Z","dependencies_parsed_at":"2024-08-19T09:07:59.492Z","dependency_job_id":null,"html_url":"https://github.com/RohanVDvivedi/ConnMan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohanVDvivedi%2FConnMan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohanVDvivedi%2FConnMan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohanVDvivedi%2FConnMan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohanVDvivedi%2FConnMan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RohanVDvivedi","download_url":"https://codeload.github.com/RohanVDvivedi/ConnMan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239785397,"owners_count":19696756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["connection-pool","multithreaded-server","tcp","tcp-client","tcp-server","udp","udp-client","udp-server"],"created_at":"2025-02-20T05:32:23.891Z","updated_at":"2026-02-01T20:30:15.317Z","avatar_url":"https://github.com/RohanVDvivedi.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConnMan\nThis is a C library, for developing multithreaded networking applications.\nIt is essentially an abstraction layer over the POSIX sockets library, providing a handler-callback based network agnostic API.\nIt allows you to change the underlying protocol layers (tcp to udp or ipv4 to ipv6) without any change in application logic.\nAdditionally, it provides a stream interface to work with tcp sockets, along with ssl and compression support.\n\n## Setup instructions\n**Install dependencies :**\n * [Cutlery](https://github.com/RohanVDvivedi/Cutlery)\n * [BoomPar](https://github.com/RohanVDvivedi/BoomPar)\n * [openssl](https://github.com/openssl/openssl)  ($ sudo apt install libssl-dev)\n * [zlib](https://github.com/madler/zlib)      ($ sudo apt install zlib1g-dev)\n\n**Download source code :**\n * `git clone https://github.com/RohanVDvivedi/ConnMan.git`\n\n**Build from source :**\n * `cd ConnMan`\n * `make clean all`\n\n**Install from the build :**\n * `sudo make install`\n * ***Once you have installed from source, you may discard the build by*** `make clean`\n\n## Using The library\n * add `-lconnman -lboompar -lpthread -lcutlery -lssl -lcrypto -lz` linker flag, while compiling your application\n * do not forget to include appropriate public api headers as and when needed. this includes\n   * `#include\u003cserver.h\u003e`\n   * `#include\u003cclient.h\u003e`\n   * `#include\u003cclient_set.h\u003e`\n   * `#include\u003ccomm_address.h\u003e`\n   * `#include\u003cssl_ctx_helper.h\u003e`\n      Additionally the library also provides the following stream apis, to create appropriate streams as per use.\n   * `#include\u003cfile_descriptor_stream.h\u003e`\n   * `#include\u003cpiped_stream.h\u003e`\n   * `#include\u003cssl_stream.h\u003e`\n   * `#include\u003cwritable_dstring_stream.h\u003e`\n   * `#include\u003czlib_readable_decompression_stream.h\u003e`\n   * `#include\u003czlib_writable_compression_stream.h\u003e`\n   * `#include\u003cread_until_dstring_stream.h\u003e`\n      Below is the list of headers that contain utility functions that can be used with the created streams.\n   * `#include\u003cstream_util.h\u003e`\n      Below header container allows you to manage multiple streams each chained with an underlying stream managed as a stack.\n   * `#include\u003cstacked_stream.h\u003e`\n\n## Instructions for uninstalling library\n\n**Uninstall :**\n * `cd ConnMan`\n * `sudo make uninstall`\n\n## Third party acknowledgements\n * *gzip and deflate compression streams, internally supported by [zlib](https://github.com/madler/zlib) checkout their website [here](https://zlib.net/).*\n * *SSL and TLS encryption for ssl-ed streams, internally supported by [openssl](https://github.com/openssl/openssl) checkout their website [here](https://www.openssl.org/).*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohanvdvivedi%2Fconnman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohanvdvivedi%2Fconnman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohanvdvivedi%2Fconnman/lists"}