I did InfiniteStream by implementing Stream and Consumer so you can initiate the stream then consume object using it, and added queueing for it to handle storing more than one value from accept please send me your feedback:

https://gist.github.com/bassemZohdy/e5fdd56de44cea3cd8ff