{"id":24889106,"url":"https://github.com/timothy-liuxf/tmchat","last_synced_at":"2025-07-27T03:33:33.421Z","repository":{"id":43064809,"uuid":"434781745","full_name":"Timothy-Liuxf/TMChat","owner":"Timothy-Liuxf","description":"A chat tool with a communication component using TCP/IPv4. ","archived":false,"fork":false,"pushed_at":"2023-12-12T00:23:14.000Z","size":143,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T21:15:34.748Z","etag":null,"topics":["cpp","linux","network","networking","socket","tcp","tcp-ip","tmsocket","windows"],"latest_commit_sha":null,"homepage":"https://timothy-liuxf.github.io/TMChat/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Timothy-Liuxf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2021-12-04T01:47:39.000Z","updated_at":"2023-12-29T00:59:52.000Z","dependencies_parsed_at":"2023-12-06T04:38:48.433Z","dependency_job_id":null,"html_url":"https://github.com/Timothy-Liuxf/TMChat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Timothy-Liuxf/TMChat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Timothy-Liuxf%2FTMChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Timothy-Liuxf%2FTMChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Timothy-Liuxf%2FTMChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Timothy-Liuxf%2FTMChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Timothy-Liuxf","download_url":"https://codeload.github.com/Timothy-Liuxf/TMChat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Timothy-Liuxf%2FTMChat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267294180,"owners_count":24065343,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cpp","linux","network","networking","socket","tcp","tcp-ip","tmsocket","windows"],"created_at":"2025-02-01T16:17:17.281Z","updated_at":"2025-07-27T03:33:33.399Z","avatar_url":"https://github.com/Timothy-Liuxf.png","language":"C++","readme":"# TMChat\n\n**Start chatting with TMChat now!**\n\nTMChat, a small chat tool with a self-written TCP/IPv4 communication library, TMSocket. \n\n## Supported Compiler\n\n|       Compiler       |     Platform     | Target |        C++11        |   C++14 \\~ C++20    |\n| :------------------: | :--------------: | :----: | :-----------------: | :-----------------: |\n|   GCC 7 \\~ GCC 11    |   Linux x86_64   | `-m64` | Perfectly supported | Perfectly supported |\n| Clang 12 \\~ Clang 14 |   Linux x86_64   | `-m64` | Perfectly supported | Perfectly supported |\n|      MSVC 19.37      | Windows (64-bit) |  x64   |    Not supported    |      Supported      |\n|      MSVC 19.37      | Windows (64-bit) |  x86   |    Not supported    |  Compiler warnings  |\n|    Apple Clang 13    |   macOS arm64    | `-m64` |      Supported      |      Supported      |\n\n## Structure\n\n+ tmsocket: A communication library using TCP/IPv4 which provides message pack oriented communication.  \n+ server: The server of TMChat.  \n+ client: The client of TMChat.  \n\n## How to build\n\n### Linux\n\n```sh\n# Requires GNU Autotools and GNU Make\n\n$ autoreconf -i\n$ ./configure\n$ make -j$(nproc)\n```\n\nAnd the target `build/lib/libtmsocket.a`, `build/bin/tmchat_server` and `build/bin/tmchat_client` will be built. \n\nThen install it:\n\n```shell\nsudo make install\n```\n\nAfter installation, you can use the third party library `libtmsocket.a`: \n\n```c++\n#include \u003ctmsocket/include/server_communicator.hpp\u003e\n#include \u003ctmsocket/include/client_communicator.hpp\u003e\n```\n\nwith link option `-ltmsocket` and use the chat tool:\n\n```shell\n$ tmchat_server\n$ tmchat_client\n```\n\n### Windows\n\n#### Use Visual Studio  \n\nOpen `TMChat.sln` with Visual Studio 2022 or later versions, choose a target platfrom (Release | x64 recommended) and then build the solution. \n\nThen the target `server.exe` and `client.exe` will be built. \n\n#### Use MSBuild  \n\nYou can also use MSBuild to build the targets. If so, you should have MSBuild in your path. You can add it to your path manually or use \"Developer command Prompt for Visual Studio\". \n\nYou can run `Build.cmd` to build and run `Clean.cmd` to clean, or run the following command in cmd:  \n\n```cmd\n\u003e MSBuild \".\\TMChat.sln\" [options]\n```\n\n The options can be:  \n\n+ `-t:\u003cvalue\u003e`: Specify the task. The `value` can be: \n  + `Build`: Incremental compile. This is the recommended value.  \n  + `Recompile`: Recompile. This will delete all files built in the last compilation and rebuild the targets. \n  + `Clean`: Delete all files in the last compilation. \n+ `-p:\u003cproperty\u003e=\u003cvalue\u003e;\u003cproperty\u003e=\u003cvalue\u003e;...`. The `property` can be: \n  + `Configuration`: The value can be `Debug` or `Release`  \n  + `Target`: The value can be `x86` or `x64`  \n+ `-m:\u003cvalue\u003e`: The `value` specifies  the maximum number of concurrent processes to use when building. The default value is `1`  \n\nExample: \n\n```cmd\n\u003e MSBuild \".\\TMChat.sln\" \"-t:Build\" \"-p:Configuration=Release;Platform=x64\" \"-m:8\"\n```\n\nThen the target `server.exe` and `client.exe` will be built in the directory below:  \n\n|      |      Debug      |      Release      |\n| :--: | :-------------: | :---------------: |\n| x86  |   `src\\Debug`   |   `src\\Release`   |\n| x64  | `src\\x64\\Debug` | `src\\x64\\Release` |\n\n### macOS\n\n```sh\n# Requires GNU Autotools and GNU Make\n\n$ autoreconf -i\n$ CXX='clang++ -std=c++11' ./configure\n$ make -j$(sysctl -n hw.logicalcpu)\n```\n\nAnd the target `build/lib/libtmsocket.a`, `build/bin/tmchat_server` and `build/bin/tmchat_client` will be built. \n\nThen install it:\n\n```shell\nsudo make install\n```\n\nAfter installation, you can use the third party library `libtmsocket.a`:\n\n```c++\n#include \u003ctmsocket/include/server_communicator.hpp\u003e\n#include \u003ctmsocket/include/client_communicator.hpp\u003e\n```\n\nwith link option `-ltmsocket` and use the chat tool:\n\n```shell\n$ tmchat_server\n$ tmchat_client\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothy-liuxf%2Ftmchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimothy-liuxf%2Ftmchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothy-liuxf%2Ftmchat/lists"}