{"id":21800292,"url":"https://github.com/apache/fluo-bytes","last_synced_at":"2025-06-10T20:33:06.595Z","repository":{"id":65979355,"uuid":"99372054","full_name":"apache/fluo-bytes","owner":"apache","description":"Apache Fluo Bytes","archived":false,"fork":false,"pushed_at":"2024-11-25T22:07:19.000Z","size":16,"stargazers_count":4,"open_issues_count":2,"forks_count":7,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-11-25T23:20:38.295Z","etag":null,"topics":["big-data","fluo","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://fluo.apache.org","language":null,"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/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-04T19:01:26.000Z","updated_at":"2024-11-25T22:07:23.000Z","dependencies_parsed_at":"2023-02-19T19:15:27.400Z","dependency_job_id":null,"html_url":"https://github.com/apache/fluo-bytes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluo-bytes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluo-bytes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluo-bytes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluo-bytes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/fluo-bytes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226737461,"owners_count":17673684,"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":["big-data","fluo","hacktoberfest"],"created_at":"2024-11-27T10:43:58.772Z","updated_at":"2024-11-27T10:43:59.584Z","avatar_url":"https://github.com/apache.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n--\u003e\n\n# Apache Fluo Bytes\n\n[![Build Status][ti]][tl] [![Apache License][li]][ll] [![Maven Central][mi]][ml] [![Javadoc][ji]][jl]\n\n**Apache Fluo Bytes is a simple library with the goal of providing an extremely\nstable API for handling bytes, suitable for use in [Apache Fluo][fluo] and\nother projects' APIs.**\n\n## Features and Goals\n\nThis project aims to fill a void in Java, by providing convenient objects to\nrepresent a sequence of bytes and associated utility classes for situations\nwhen a raw byte array is not appropriate.\n\nSpecifically, it provides a `ByteSequence` interface, analogous to Java's\n`CharSequence`, an immutable `Bytes` implementation analogous to Java's\n`String`, and a corresponding `BytesBuilder` analogous to Java's\n`StringBuilder`.\n\nThe provided classes have appropriate methods for serialization, and proper\nequals and hashCode implementations, as well as a comparator for\n`ByteSequence`, so they will be suitable for use in `Set`s and as keys in\n`Map`s.\n\nAn immutable bytes implementation makes it possible to pass data between APIs\nwithout the need for performance-killing protective copies. This benefit is\ncompounded if this library is used by multiple projects, as the need to make\nprotective copies while passing data between a project and its dependency's API\nis eliminated.\n\nThis project aims to provide a fluent and intuitive API, with support for\nconversions to/from other common types, such as `ByteBuffer`, `byte[]`, and\n`CharSequence`/`String`.\n\nThis project requires at least Java 8, and supports `Stream` and functional\nAPIs where appropriate.\n\nSee this [blog post][blog] for some additional background.\n\n## Safe for APIs\n\nUsing an external library in a project's API poses some risks to that project,\nespecially if it and its dependencies depend on different versions of that\nlibrary. This project attempts to mitigate those risks, so that it can be used\nsafely by other projects.\n\nThis project is made safe for reuse in other projects' APIs by adopting the\nfollowing principles:\n\n* Using [Semantic Versioning 2.0.0][semver] to make strong declarations about\n  backwards-compatibility\n* Strongly avoid breaking changes (avoid major version bumps), so that projects\n  can converge on the latest version of this library required by their code and\n  that of their dependencies, without risk of incompatibility\n* No runtime dependencies itself, to eliminate any potential conflicts from\n  transitive dependencies if this library is used\n* Use generic package naming scheme not tied to the Maven coordinates, in case\n  the project relocates or becomes independent of Fluo in the future\n* Practice review-then-commit during development to protect against poor\n  initial design which is stuck with the project for the long-term\n* Provide `@since` tags in Javadocs to communicate minimum required versions\n  for particular features\n\n## Public API declaration for Semantic Versioning\n\nThis project's public API are all the publicly visible classes, methods, and\nfields accessible outside the project's packages.\n\n---\n*Apache Fluo Bytes is an [Apache Fluo][fluo] project.*\n\n[blog]: https://fluo.apache.org/blog/2016/11/10/immutable-bytes/\n[semver]: http://semver.org/spec/v2.0.0.html\n[fluo]: https://fluo.apache.org/\n[ti]: https://github.com/apache/fluo-bytes/workflows/CI/badge.svg\n[tl]: https://github.com/apache/fluo-bytes/actions\n[li]: http://img.shields.io/badge/license-ASL-blue.svg\n[ll]: https://github.com/apache/fluo-bytes/blob/main/LICENSE\n[mi]: https://maven-badges.herokuapp.com/maven-central/org.apache.fluo/fluo-bytes/badge.svg\n[ml]: https://maven-badges.herokuapp.com/maven-central/org.apache.fluo/fluo-bytes/\n[ji]: https://javadoc-emblem.rhcloud.com/doc/org.apache.fluo/fluo-bytes/badge.svg\n[jl]: http://www.javadoc.io/doc/org.apache.fluo/fluo-bytes\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Ffluo-bytes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Ffluo-bytes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Ffluo-bytes/lists"}