JuliaIO / BufferedStreams.jl

Fast composable IO streams
MIT License
42 stars 20 forks source link

Archive this package in favor of TranscodingStreams? #62

Closed jakobnissen closed 1 year ago

jakobnissen commented 3 years ago

I'm reasonably certain this package is deprecated in favor of TranscodingStreams and has been for a few years. Should we just archive it and put a big, fat sign up on the README that redirects people to TranscodingStreams?

kescobo commented 3 years ago

Possible duplication of #61. In that issue, @StefanKarpinski mentions TranscodingStreams.jl, so maybe they're orthogonal? I don't think I've ever used either directly, so I'm not sure.

I do think it should be either archived or transferred to a different Org, its presence in BioJulia is mostly historical accident.

jakobnissen commented 3 years ago

IIRC, Kenta Sato wrote this package to replace BufferedStreams - the NoopStream works like BufferedStreams, but better.

feanor12 commented 2 years ago

I think the anchor functionality is missing in the other packages.

KristofferC commented 2 years ago

TranscodingStreams is much slower for me:

julia> using BufferedStreams, TranscodingStreams

julia> begin
           array = rand(UInt8, 1024*1024*256)
           tmp, io = mktemp()
           write(io, array)
           close(io)
       end

julia> function readchars(io)
           s = 0
           while !eof(io)
               s += read(io, UInt8)
           end
           return s
       end;

julia> open(tmp) do io
           @time readchars(BufferedInputStream(io, 128*2^10))
       end;
  0.136337 seconds (3 allocations: 128.172 KiB)

julia> open(tmp) do io
           @time readchars(NoopStream(io; bufsize=128*2^10))
       end;
  1.012437 seconds (5 allocations: 128.234 KiB)

So I think there is till value in this package.

jakobnissen commented 2 years ago

@KristofferC good point. Since all of BioJulia's IO goes through TranscodingStreams, I think what your comment implies is that we should do our best to make TranscodingStreams much faster than it is currently. And I agree we shouldn't retire BufferedStreams until we can reasonably claim that users can switch to NoopStream without any loss of performance.

KristofferC commented 2 years ago

While you are here, perhaps you can look at https://github.com/BioJulia/BufferedStreams.jl/pull/64 heh.

jakobnissen commented 2 years ago

Unfortunately, I dont have merge permissions for this repo (I'm not a maintainer). In fact, I'm pretty sure no-one is, and this package is unmaintained despite having 1,012 dependents.

KristofferC commented 2 years ago

Since it is in the BioJulia org someone should have some power to be able to add new collaborators?

jakobnissen commented 2 years ago

Whoops, I conflated this package with TranscodingStreams. I can look at #64 tomorrow

stevengj commented 1 year ago

I think this can be closed? Sounds like we are keeping this package.

KristofferC commented 1 year ago

At least until the performance in the replacement package has been improved to at least match this package.