{"id":28066140,"url":"https://github.com/futzu/new_reader","last_synced_at":"2025-08-12T13:09:39.509Z","repository":{"id":41188596,"uuid":"508669400","full_name":"futzu/new_reader","owner":"futzu","description":"The hottest tool nobody is using,Read multicast, udp, http(s), and stdin just  like a file.  All Hail new_reader!","archived":false,"fork":false,"pushed_at":"2024-11-16T08:59:54.000Z","size":68,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-26T19:44:36.103Z","etag":null,"topics":["adrianofdoom","boobs","https","iheartbegode","multicast","plan9","python3","reader","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/futzu.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,"zenodo":null}},"created_at":"2022-06-29T11:48:20.000Z","updated_at":"2024-11-16T08:59:57.000Z","dependencies_parsed_at":"2025-05-12T14:38:11.300Z","dependency_job_id":"14e2accb-56ec-4ae7-a15d-25b55ebe8196","html_url":"https://github.com/futzu/new_reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/futzu/new_reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fnew_reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fnew_reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fnew_reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fnew_reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futzu","download_url":"https://codeload.github.com/futzu/new_reader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fnew_reader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270065449,"owners_count":24520946,"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-08-12T02:00:09.011Z","response_time":80,"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":["adrianofdoom","boobs","https","iheartbegode","multicast","plan9","python3","reader","udp"],"created_at":"2025-05-12T14:38:08.075Z","updated_at":"2025-08-12T13:09:39.500Z","avatar_url":"https://github.com/futzu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `new_reader` \n## Read `stdin`, `files`, `multicast`, `udp`, and `http(s)` URIs the same way.  \n```python3\nfrom new_reader import reader\n\nrdr = reader('udp://@235.35.3.5:3535')\nrdr.read()\n```\n  \n## latest version is `0`.`1`.`11`  \n* Critical Fix for Multicast\n\n![image](https://user-images.githubusercontent.com/52701496/205797792-aee34f1c-039c-427b-87f4-709c3b6a8aa2.png)\n\n## new_reader is used by [`threefive`](https://github.com/futzu/threefive), [`x9k3`](https://github.com/futzu/x9k3), [`gumd`](https://github.com/futzu/gumd), [`m3ufu`](https://github.com/futzu/m3ufu), [`superkabuki`](https://github.com/futzu/superkabuki), [`iframes`](https://github.com/futzu/iframes) , [`umzz`](https://github.com/futzu/umzz),[`showcues`](https://github.com/futzu/showcues),[`six2scte35`](https://github.com/futzu/six2scte35)and [`sideways`](https://github.com/futzu/sideways).\n\n \n ## How is `new_reader.reader` used?\n ```js\n # print a mpegts packet header via https\n \n\u003e\u003e\u003e\u003e from new_reader import reader\n\u003e\u003e\u003e\u003e with reader('https://so.slo.me/longb.ts') as rdr:\n....     packet = rdr.read(188)\n....     print(packet[:4])\n....     \nb'G@\\x11\\x10'\n```\n           \n \n#### | more\n\n- [x] `Files`\n```js\n    from new_reader import reader\n\n    with reader(\"/home/you/video.ts\") as data:\n        fu = data.read()\n```\n- [x] `HTTP(S)`\n```js\n    from new_reader import reader\n\n    with reader('http://iodisco.com/') as disco:\n        disco.read()\n\n    # Add http headers like this \n    \n    with reader('http://iodisco.com/',headers={\"myHeader\":\"DOOM\"}) as doom:\n        doom.read()\n\n```\n- [x] `Multicast`\n```smalltalk\n    from new_reader import reader\n\n    with reader(\"udp://@227.1.3.10:4310\") as data:\n        data.read(8192)\n```\n- [x] `UDP`\n```lua\n    from new_reader import reader\n\n    udp_data =reader(\"udp://1.2.3.4:5555\")\n    chunks = [udp_data.read(188) for i in range(0,1024)]\n    udp_data.close()\n```\n  ### `UDP` and `Multicast`\n  * reader will set `socket.SO_RCVBUF` to the maximum value allowed by the OS for `UDP` and `Multicast`.\n  * `socket.SO_RCVBUF` can also be set like this:\n    * On `OpenBSD` \n    ```js\n    sysctl net.inet.udp.recvspace\n    ```\n    * On `Linux`\n    ```js\n      sysctl -w net.core.rmem_max=6815744\n    ```\n    * On `Windows`\n    ```js\n     I.have.no.idea\n    ```\n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffutzu%2Fnew_reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffutzu%2Fnew_reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffutzu%2Fnew_reader/lists"}