{"id":21452655,"url":"https://github.com/nmrr/simple-data-diode","last_synced_at":"2025-07-26T10:03:48.546Z","repository":{"id":183290980,"uuid":"669883612","full_name":"nmrr/simple-data-diode","owner":"nmrr","description":"A simple data diode that allows data to travel in only one direction in the network","archived":false,"fork":false,"pushed_at":"2023-07-24T06:06:13.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T02:45:52.942Z","etag":null,"topics":["data-diode","isolated-network","udp"],"latest_commit_sha":null,"homepage":"","language":"Python","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/nmrr.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":"2023-07-23T18:33:22.000Z","updated_at":"2023-07-23T19:19:31.000Z","dependencies_parsed_at":"2023-07-23T20:25:20.829Z","dependency_job_id":"ee196375-9b98-480d-a183-358d124f6499","html_url":"https://github.com/nmrr/simple-data-diode","commit_stats":null,"previous_names":["nmrr/simple-data-diode"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nmrr/simple-data-diode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fsimple-data-diode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fsimple-data-diode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fsimple-data-diode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fsimple-data-diode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmrr","download_url":"https://codeload.github.com/nmrr/simple-data-diode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fsimple-data-diode/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265431935,"owners_count":23764031,"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":["data-diode","isolated-network","udp"],"created_at":"2024-11-23T04:31:11.352Z","updated_at":"2025-07-15T11:33:13.587Z","avatar_url":"https://github.com/nmrr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simple-data-diode\nA simple data diode that allows data to travel in only one direction in the network\n\n\nData diodes are often used in isolated systems to transfer data securely from outside to inside and vice versa by using a single direction flow.\nA server can send data to a client and the client will never communicate with the server. The server will never know if the client has received all data (there is no acknowledgment from the client). **UDP** socket is used to transfer data in the network and chuck of data are send several times to compensate loss of data.\n\n\nMore information: https://en.wikipedia.org/wiki/Unidirectional_network\n\n\nKeep in mind this **data diode** is a **toy**, performance is really poor but the diode works !\n\n\n**Python 3** is required. There is no dependency.\n\n**On client side:**\n\nLaunch the client:\n```\npython3 client.py\n```\n\n\n**On server side:**\n\nCreate a 20MB random file:\n```\ndd if=/dev/urandom of=output.txt bs=1M count=20\n```\n\nLaunch the server:\n```\npython3 server.py\n```\n\n**Port** and **binding address** can be modified easily in the header of scripts. Progression will be shown on client/server sides.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmrr%2Fsimple-data-diode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmrr%2Fsimple-data-diode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmrr%2Fsimple-data-diode/lists"}