Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement kotlinx-io on the Okio library basis #131

Open
fzhinkin opened this issue Jun 12, 2023 · 5 comments
Open

Implement kotlinx-io on the Okio library basis #131

fzhinkin opened this issue Jun 12, 2023 · 5 comments
Assignees

Comments

@fzhinkin
Copy link
Collaborator

fzhinkin commented Jun 12, 2023

Okio is a popular, well-established, and battle-tested library providing rich functionality and good performance. It provides concise yet powerful primitives for multiplatform IO. kotlinx-io could use Okio as a basis.

The overall plan is to take the Okio library (its core part, without filesystems), eliminate a Java legacy from the API, reduce the API shape, and provide missing functionality and features.

One of the goals along this path is to ensure that kotlinx-io will preserve the same performance level as Okio has right now or even improve it where possible. To track the performance, a benchmarking suite should be added.

New functionality and features that could be considered for adding to the library in the future include:

Particular tasks will be described in corresponding GH issues.

@fzhinkin fzhinkin self-assigned this Jun 12, 2023
This was referenced Jun 12, 2023
@fzhinkin
Copy link
Collaborator Author

Currently, the development is conducted in prototype-preview branch (https://github.com/Kotlin/kotlinx-io/tree/prototype-preview).

@SPC-code
Copy link

Will Input/Output abstraction be separate from Okio? I think it is important since we will want to be able to use non-okio backend in future.

@StylianosGakis
Copy link

StylianosGakis commented Jun 14, 2023

When I saw that the filesystem won't be carried over I thought maybe it's because you don't want this functionality to be here, but you do in fact mention later that it is a possible future feature, and explicitly stated that it won't be taken from okio.
Why is this the case I wonder, is it some specific thing you're trying to avoid, some design decision you don't agree with, or something completely unrelated?
I don't have personal opinions about it. I'm, mostly just curious about it.

@fzhinkin
Copy link
Collaborator Author

Sorry for the ambiguity, I only wanted to stress that we're not including Okio filesystems into kotlinx-io right now (and I didn't mean that we'll never consider Okio filesystems as a basis for kotlinx-io filesystems once the decision to develop it will be made).
So, yeah, there are no arguments against Okio FS, we're just not going to support filesystems right now.

@StylianosGakis
Copy link

Ah, thanks a lot, I really misunderstood what you meant in the original message. Reading it back again now I totally see what you just explained to me here. Thanks for the clarification, and sorry for the confusion 😊

@BoD BoD mentioned this issue Jul 12, 2023
@fzhinkin fzhinkin added the epic label Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants