JuliaIO / JuliaIO/TranscodingStreams.jl
Why implement `Buffer` and `Memory`?
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 90
- Forks
- 25
- PR merge metrics
- No merged PRs in 30d
Description
Hey I've just been poking around this package and it seems overly complex. Can someone more familiar with it make sure I haven't just missed Chesterton's fence 😛 Happy to work on this if people agree it makes sense
AFAICT, TranscodingStream manages an input and output Buffer; data is read from the input stream into the input Buffer. This is passed to a codec via Memory (which is just an abstraction over the "used" and "free" parts of a Buffer). The codec writes to the output Buffer, and that's given to the user via an output stream when requested.
- Remove
Memory. I can't figure out why this is useful, aside from just making things slightly easier for downstream codecs that are C-based and need pointers. If that's the case, we could views instead. - Remove
Buffer. We really don't need our own implementation; I thinkIOBuffershould work. Fundamentally, we just want to load data from the input stream into some input array, let a codec convert part of that to an output array, and send it to the user via a stream.
Less importantly:
- Remove
Error. Why not justtry/catchinstead of passing yet another variable around as state?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing TranscodingStream and the Buffer, Memory, and Error abstractions, then compare their responsibilities with Julia's IOBuffer and the codec interface. The issue does not name files or tests; done would require an agreed design and corresponding updates to the package's buffering and error-handling behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100