{"id":17722847,"url":"https://github.com/fleeksoft/fleeksoft-io","last_synced_at":"2025-05-06T21:23:00.713Z","repository":{"id":259298521,"uuid":"875212233","full_name":"fleeksoft/fleeksoft-io","owner":"fleeksoft","description":"A lightweight Kotlin Multiplatform port of JDK IO classes (Reader, InputStream, BufferedReader, etc.), with support for character encoding via Charset.","archived":false,"fork":false,"pushed_at":"2025-04-28T07:46:46.000Z","size":2139,"stargazers_count":72,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-01T03:42:57.064Z","etag":null,"topics":["jdk","kotlin","kotlin-io","kotlin-multiplatform"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fleeksoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-19T11:42:54.000Z","updated_at":"2025-04-29T16:38:33.000Z","dependencies_parsed_at":"2024-10-24T06:56:12.056Z","dependency_job_id":"82214674-5cb7-4d89-a574-04bf0ad14336","html_url":"https://github.com/fleeksoft/fleeksoft-io","commit_stats":null,"previous_names":["fleeksoft/fleeksoft-io"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fleeksoft%2Ffleeksoft-io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fleeksoft%2Ffleeksoft-io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fleeksoft%2Ffleeksoft-io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fleeksoft%2Ffleeksoft-io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fleeksoft","download_url":"https://codeload.github.com/fleeksoft/fleeksoft-io/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252770075,"owners_count":21801470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jdk","kotlin","kotlin-io","kotlin-multiplatform"],"created_at":"2024-10-25T15:40:45.088Z","updated_at":"2025-05-06T21:23:00.701Z","avatar_url":"https://github.com/fleeksoft.png","language":"Kotlin","funding_links":[],"categories":["kotlin"],"sub_categories":[],"readme":"# Kotlin Multiplatform IO Library\n\nA Kotlin Multiplatform (KMP) port of Java’s IO classes, bringing familiar IO operations to multiplatform projects—JVM, Android, iOS, macOS, Linux, Windows, Web, and beyond.\n\n\n[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.20-blue.svg?style=flat\u0026logo=kotlin)](https://kotlinlang.org)\n![License](https://img.shields.io/badge/license-Apache--2.0-blue)\n[![Maven Central](https://img.shields.io/maven-central/v/com.fleeksoft.io/io.svg)](https://central.sonatype.com/artifact/com.fleeksoft.io/io)\n---\n## 🌐 Supported Platforms\n![badge-jvm](http://img.shields.io/badge/platform-jvm-DB413D.svg?style=flat)\n![badge-android](http://img.shields.io/badge/platform-android-6EDB8D.svg?style=flat)\n![badge-ios](http://img.shields.io/badge/platform-ios-CDCDCD.svg?style=flat)\n![badge-mac](http://img.shields.io/badge/platform-macos-111111.svg?style=flat)\n![badge-tvos](http://img.shields.io/badge/platform-tvos-808080.svg?style=flat)\n![badge-tvos](http://img.shields.io/badge/platform-watchos-808080.svg?style=flat)\n![badge-linux](http://img.shields.io/badge/platform-linux-2D3F6C.svg?style=flat)\n![badge-windows](http://img.shields.io/badge/platform-windows-4D76CD.svg?style=flat)\n![badge-js](https://img.shields.io/badge/platform-js-F8DB5D.svg?style=flat)\n![badge-wasm](https://img.shields.io/badge/platform-wasm-F8DB5D.svg?style=flat)\n\n---\n\n## ✨ Features\n\nThis library is organized into modular components for flexibility and clarity.\n\n\u003e **Note**\n\u003e Direct file read/write APIs are not included. For file operations, use this library in combination with `kotlinx-io` or `okio`, which support stream conversions.\n\n---\n### 🧱 Core Module (`com.fleeksoft.io:io-core`)\n\nCore components for buffer and charset management.\n\n- `Buffer`: Base container (like `java.nio.Buffer`)\n- `ByteBuffer`, `CharBuffer`\n- `CharBufferFactory`: Helper utilities to create buffers\n- `Closeable`, `Readable`: Interfaces for IO components\n\n---\n\n### 📦 IO Module (`com.fleeksoft.io:io`)\n\nStream and reader abstractions.\n\n- **Character Streams**\n  - `Reader`, `BufferedReader`, `StringReader`, `CharArrayReader`\n  - `PushbackReader`, `FilterReader`\n- **Byte Streams**\n  - `InputStream`, `ByteArrayInputStream`, `InputStreamReader`\n  - `OutputStream`, `ByteArrayOutputStream`, `BufferedOutputStream`, `FilterOutputStream`\n- **Charset Support**  [CharsetsReadme.md](CharsetsReadme.md)\n- **Extension Functions**\n  ```kotlin\n  \"Hello\".byteInputStream() // return ByteArrayInputStream\n  \"Hello\".reader() // return StringReader\n  byteArray.inputStream() // return ByteArrayInputStream\n  inputStream.reader() // return InputStreamReader\n  inputStream.bufferedReader() // return BufferedReader\n  reader.buffered() // return BufferedReader\n  reader.buffered().readLines()\n  bufferedReader.readString(count)```\n\n---\n\n---\n\n### 🌐 URI Module (`com.fleeksoft.io:uri`)\n\nMultiplatform-safe version of `java.net.URI`.\n\n- `URI`: Parse, resolve, normalize URIs\n- `URIFactory`: Use this instead of `URI.create()`\n\n---\n\n### 🔌 kotlinx-io Integration (`com.fleeksoft.io:kotlinx-io`)\n\nInterop for working with `kotlinx-io` streams:\n\n- `Source.asInputStream(): InputStream`\n- `RawSource.asInputStream(): InputStream`\n- `InputStream.asSource(): RawSource`\n\n---\n\n### 🔌 Okio Integration (`com.fleeksoft.io:okio`)\n\nInterop for Okio-powered IO:\n\n- `Source.asInputStream(): InputStream`\n- `InputStream.asSource(): Source`\n\n---\n\n### 🧬 Charset Modules\n\nSupport for standard and extended character sets:\n\n- Standard: `com.fleeksoft.charset:charset:\u003cversion\u003e`\n- Extended: `com.fleeksoft.charset:charset-ext:\u003cversion\u003e`\n\n➡️ [More info](CharsetsReadme.md)\n\n---\n\n## 🛠 Installation\n\nAdd dependencies in your `build.gradle.kts`:\n\n```kotlin\ncommonMain.dependencies {\n    implementation(\"com.fleeksoft.io:io-core:\u003cversion\u003e\")\n    implementation(\"com.fleeksoft.io:io:\u003cversion\u003e\")\n\n    // Optional integrations\n    implementation(\"com.fleeksoft.io:kotlinx-io:\u003cversion\u003e\")\n    implementation(\"com.fleeksoft.io:okio:\u003cversion\u003e\")\n}\n```\n\nFind the latest version here:\n[![Maven Central](https://img.shields.io/maven-central/v/com.fleeksoft.io/io.svg)](https://central.sonatype.com/artifact/com.fleeksoft.io/io)\n---\n\n## 🚀 Usage Example\n\n```kotlin\nval str = \"Hello, World!\"\nval byteArray = ByteArray(10)\nval charArray = CharArray(10)\n\nval byteArrayInputStream = str.byteInputStream()\nval stringReader = str.reader()\n\nval bufferedReader = stringReader.buffered()\nval bufferedReader2 = byteArrayInputStream.bufferedReader()\n\nval byteBuffer = ByteBufferFactory.wrap(byteArray)\nval charBuffer = CharBufferFactory.wrap(charArray)\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome!\nOpen an issue or submit a pull request to improve features, fix bugs, or enhance documentation.\n\n## 📄 License\n\nLicensed under the Apache License 2.0.\nSee [LICENSE](LICENSE.md) for full details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffleeksoft%2Ffleeksoft-io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffleeksoft%2Ffleeksoft-io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffleeksoft%2Ffleeksoft-io/lists"}