{"id":16452873,"url":"https://github.com/titaniumhocker/telegraph","last_synced_at":"2025-04-04T17:12:34.097Z","repository":{"id":129174144,"uuid":"423301013","full_name":"TitaniumHocker/telegraph","owner":"TitaniumHocker","description":"Terminal P2P messenger implemented in C","archived":false,"fork":false,"pushed_at":"2022-05-01T13:27:50.000Z","size":33,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T02:23:54.856Z","etag":null,"topics":["c","messaging","p2p","p2p-chat","tls"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TitaniumHocker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-11-01T01:23:02.000Z","updated_at":"2024-01-24T14:20:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"dde9d82c-8f90-41bb-a7ff-8edaa6bae732","html_url":"https://github.com/TitaniumHocker/telegraph","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/TitaniumHocker%2Ftelegraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitaniumHocker%2Ftelegraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitaniumHocker%2Ftelegraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TitaniumHocker%2Ftelegraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TitaniumHocker","download_url":"https://codeload.github.com/TitaniumHocker/telegraph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217222,"owners_count":20903009,"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":["c","messaging","p2p","p2p-chat","tls"],"created_at":"2024-10-11T10:14:04.492Z","updated_at":"2025-04-04T17:12:34.073Z","avatar_url":"https://github.com/TitaniumHocker.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# telegraph\n\n```\n _       _                            _\n| |_ ___| | ___  __ _ _ __ __ _ _ __ | |__\n| __/ _ \\ |/ _ \\/ _` | '__/ _` | '_ \\| '_ \\\n| ||  __/ |  __/ (_| | | | (_| | |_) | | | |\n \\__\\___|_|\\___|\\__, |_|  \\__,_| .__/|_| |_|\n                |___/          |_|\n```\n\nTerminal P2P messenger implemented in C.\n\nThis project was created for education purposes.\n\n** WORK IN PROGRESS **\n\nDEFAULTPOST: 1858\n\nFeatures:\n - Basic messaging\n - Minimalistic text/terminal based UI\n - [P2P](https://en.wikipedia.org/wiki/Peer-to-peer) connection between clients\n - SSL/TLS e2e encryption\n\nBuild requrements:\n - C compiler with standard library, `gcc` for example\n - `gnutls`\n\nLinks to read for developing:\n - [Simple UDP multicast example in C](https://gist.github.com/hostilefork/f7cae3dc33e7416f2dd25a402857b6c6)\n - [Изучая go: пишем p2p мессенджер со сквозным шифрованием](https://habr.com/ru/post/437686/)\n - [Analysis of P2P: How to communicate between two terminals without public IP?](https://www.programmersought.com/article/23564027459/)\n - [TCP hole punching](https://en.wikipedia.org/wiki/TCP_hole_punching)\n - [Peer-to-Peer Communication Across Network Address Translators](https://bford.info/pub/net/p2pnat/)\n - [Traversal Using Relays around NAT](https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT)\n - [Simple threadpool implementation](https://programmer.group/c-simple-thread-pool-based-on-pthread-implementation.html)\n - [Building from different source folders to different target folders](https://riptutorial.com/makefile/example/21376/building-from-different-source-folders-to-different-target-folders)\n - [passing a struct over TCP (SOCK\\_STREAM) socket in C](https://stackoverflow.com/questions/8000851/passing-a-struct-over-tcp-sock-stream-socket-in-c)\n - [A simple UDP-based NAT hole punching example for C](https://github.com/ckennelly/hole-punch)\n - [Peer-to-Peer Programming](http://cs.berry.edu/~nhamid/p2p/)\n - [Resources for Developing P2P Protocols across NAT](https://www.linuxjournal.com/article/9072)\n - [Developing P2P Protocols across NAT](https://www.linuxjournal.com/article/9004)\n - [Hole Punch: UDP NAT Punching](https://github.com/ckennelly/hole-punch)\n - [UDP Hole Punching Proof implementations](https://github.com/JacopoDaeli/udp-holepunching-proof)\n - [UDP Hole Punching Examples](https://github.com/mwarning/UDP-hole-punching-examples)\n\nLinks to watch for developing:\n - [Creating a Peer to Peer Network in C](https://www.youtube.com/watch?v=oHBi8k31fgM)\n - [Multithreading with a Thread Pool in C](https://www.youtube.com/watch?v=WmDOHh7k0Ag)\n - [About byteorder](https://www.youtube.com/watch?v=OoHich9BPxg)\n - [Peer-to-peer (P2P) Networks - Basic Algorithms](https://www.youtube.com/watch?v=kXyVqk3EbwE)\n - [Introduction to Decentralized P2P Apps](https://www.youtube.com/watch?v=oCS05QSQ-1k)\n - [How to write a multithreaded server in C (threads, sockets)](https://www.youtube.com/watch?v=Pg_4Jz8ZIH4)\n - [Multithreaded Server Part 2: Thread Pools](https://www.youtube.com/watch?v=FMNnusHqjpw)\n - [How to write a multithreaded webserver using condition variables (Part 3)](https://www.youtube.com/watch?v=P6Z5K8zmEmc)\n - [How one thread listens to many sockets with select in C.](https://www.youtube.com/watch?v=Y6pFtgRdUts)\n - [Safety and Speed Issues with Threads. (pthreads, mutex, locks)](https://www.youtube.com/watch?v=9axu8CUvOKY)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitaniumhocker%2Ftelegraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftitaniumhocker%2Ftelegraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitaniumhocker%2Ftelegraph/lists"}