Skip to content

Everything is a file. Read files, multicast, udp, http(s), and stdin with just one function.

Notifications You must be signed in to change notification settings

kmathewmk/new_reader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

new_reader

Read stdin, files, multicast, udp, and http(s) URIs the same way.

from new_reader import reader

rdr = reader('udp://@235.35.3.5:3535')
rdr.read()

image

new_reader is used by threefive, x9k3, gumd, m3ufu, kabuki, and iframes.

How is new_reader.reader used?

# print a mpegts packet header via https

>>>> from new_reader import reader
>>>> with reader('https://so.slo.me/longb.ts') as rdr:
....     packet = rdr.read(188)
....     print(packet[:4])
....     
b'G@\x11\x10'

| more

  • Files
    from new_reader import reader

    with reader("/home/you/video.ts") as data:
        fu = data.read()
  • HTTP(S)
    from new_reader import reader

    with reader('http://iodisco.com/') as disco:
        disco.read()

    # Add http headers like this 
    
    with reader('http://iodisco.com/',headers={"myHeader":"DOOM"}) as doom:
        doom.read()
  • Multicast
    from new_reader import reader

    with reader("udp://@227.1.3.10:4310") as data:
        data.read(8192)
  • UDP
    from new_reader import reader

    udp_data =reader("udp://1.2.3.4:5555")
    chunks = [udp_data.read(188) for i in range(0,1024)]
    udp_data.close()

UDP and Multicast

  • reader will set socket.SO_RCVBUF to twice the maximum value set in the OS for UDP and Multicast.
    • On OpenBSD
    sysctl net.inet.udp.recvspace
    • On Linux
    sysctl net.core.rmem_max
    • On Windows
     I.have.no.idea

About

Everything is a file. Read files, multicast, udp, http(s), and stdin with just one function.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 92.5%
  • Makefile 7.5%