{"id":24958695,"url":"https://github.com/emrecpp/packethandler","last_synced_at":"2026-03-12T11:03:10.861Z","repository":{"id":57450181,"uuid":"314265499","full_name":"emrecpp/PacketHandler","owner":"emrecpp","description":"Send, recv, encrypt, decrypt, compress data as Packet and send it with socket for Python. You will be able to manage socket communication easily and comprehensibly using this package.","archived":false,"fork":false,"pushed_at":"2023-08-06T15:11:22.000Z","size":126,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T01:05:38.542Z","etag":null,"topics":["deserialization","deserialize","deserializer","packet","parse-data","python","serialization","serialize","serializer","socket","socket-programming","tcp","tcp-client","tcp-server"],"latest_commit_sha":null,"homepage":"","language":"Python","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/emrecpp.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":"2020-11-19T14:02:29.000Z","updated_at":"2023-12-18T10:19:19.000Z","dependencies_parsed_at":"2025-02-03T07:32:09.311Z","dependency_job_id":"a0c802ab-fd69-4b2a-9f44-8eac8a3720cd","html_url":"https://github.com/emrecpp/PacketHandler","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrecpp%2FPacketHandler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrecpp%2FPacketHandler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrecpp%2FPacketHandler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrecpp%2FPacketHandler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emrecpp","download_url":"https://codeload.github.com/emrecpp/PacketHandler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248283049,"owners_count":21077762,"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":["deserialization","deserialize","deserializer","packet","parse-data","python","serialization","serialize","serializer","socket","socket-programming","tcp","tcp-client","tcp-server"],"created_at":"2025-02-03T07:27:48.864Z","updated_at":"2026-03-12T11:03:10.703Z","avatar_url":"https://github.com/emrecpp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Packet Handler\nStore data as packet. Send, Recv, Encrypt and Compress it.\n\nYou will be able to manage **socket communication** easily and comprehensibly using this Python package.\nWith version 1.0.9 or later, you can use the \"**addListener**\" function to direct incoming opcodes to the desired function upon receipt.\n\nPlease refer to the [**Example Usage**](ExampleUsage.py) file for details and run it for demonstration.\n\n**These packages are also available for C# and C++ programming languages:**\n\nC#: https://github.com/emrecpp/DataPacket-CSharp\n\nC++: https://github.com/emrecpp/DataPacket-CPP\n## Installation\nYou can install **PacketHandler** using pip:\n\n```\npip install PacketHandler\n```\n\n# Usage ([**Detailed Usage**](ExampleUsage.py))\n\n```\nfrom Packet import Packet, ref\nimport sys, socket, select, time\n\nclass opcodes:\n    LOGIN=100\n    LOGOUT=101\n\nHOST, PORT = \"127.0.0.1\", 2000\n```\n# CLIENT\n```\nPaket = Packet(opcodes.LOGIN, Encrypt=True, Compress=True)\nUsername = \"Emre\"\nPaket \u003c\u003c Username \u003c\u003c \"123\" \u003c\u003c True \u003c\u003c bytearray(b'\\x07\\x10BYTES\\xFF') \u003c\u003c [\"Apple\", \"Banana\", \"Orange\"]\nPaket.Send(socket)\n```\n# SERVER\n```\n# Listener Thread\nPaketListen = Packet()\nwhile True:\n    if PaketListen.Recv(socketServer):\n        PaketListen.Print(\"RECEIVED PACKET (YOUR TITLE)!\")\n        if PacketListen.GetOpcode() == opcodes.LOGIN:\n            UserName, Password, RememberMe, Data, Fruits = ref(str), ref(str), ref(bool), ref(bytearray), ref(list)\n            PacketListen \u003e\u003e UserName \u003e\u003e Password \u003e\u003e RememberMe \u003e\u003e Data \u003e\u003e Fruits\n            UserName, Password, RememberMe, Data, Fruits = str(UserName), str(Password), RememberMe.obj, bytearray(Data.obj), \", \".join(Fruits.obj)  # We have to cast ref object to (int, str, bool, bytearray ...)\n            # Note: Can't use bool(RememberMe), this returns True everytime. Use .obj always !!!\n\n            print(f\"Username: {UserName}\\nPassword: {Password}\\nRememberMe: {'Yes' if RememberMe else 'No'}\\nData: {str(Data)}\\nFruits: {Fruits}\")\n    else:\n        return # Connection Lost\n\n```\n\n# OUTPUT\n\n```\nUsername: Emre\nPassword: 123\nRememberMe: Yes\nData: bytearray(b'\\x07\\x10BYTES\\xff')\nFruits: Apple, Banana, Orange\n\n\n*** RECEIVED PACKET (YOUR TITLE)! *** (67)\n00000000: 00 64 02 06 00 00 04 00 00 00 45 6D 72 65 03 00   .d........Emre..\n00000010: 00 00 31 32 33 01 08 00 00 00 07 10 42 59 54 45   ..123.......BYTE\n00000020: 53 FF 1D 00 00 00 5B 22 41 70 70 6C 65 22 2C 20   S.ÿ.........[.\".A.p.p.l.e.\".,..\n00000030: 22 42 61 6E 61 6E 61 22 2C 20 22 4F 72 61 6E 67   \"Banana\",.\"Orang\n00000040: 65 22 5D                                           e\"]\n\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femrecpp%2Fpackethandler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femrecpp%2Fpackethandler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femrecpp%2Fpackethandler/lists"}