This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch master
in repository

The following commit(s) were added to refs/heads/master by this push:
     new 67b6f55  Provide initial README (#1)
67b6f55 is described below

commit 67b6f55d350fbf32f1f0da6f5fd9a4d982820c32
Author: Christopher Tubbs <>
AuthorDate: Thu Aug 10 22:02:06 2017 +0200

    Provide initial README (#1)
--- | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)

diff --git a/ b/
new file mode 100644
index 0000000..7990152
--- /dev/null
+++ b/
@@ -0,0 +1,102 @@
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+# Apache Fluo Bytes
+[![Build Status][ti]][tl] [![Apache License][li]][ll] [![Maven 
Central][mi]][ml] [![Javadoc][ji]][jl]
+**Apache Fluo Bytes is a simple library with the goal of providing an extremely
+stable API for handling bytes, suitable for use in [Apache Fluo][fluo] and
+other projects' APIs.**
+## Features and Goals
+This project aims to fill a void in Java, by providing convenient objects to
+represent a sequence of bytes and associated utility classes for situations
+when a raw byte array is not appropriate.
+Specifically, it provides a `ByteSequence` interface, analogous to Java's
+`CharSequence`, an immutable `Bytes` implementation analogous to Java's
+`String`, and a corresponding `BytesBuilder` analogous to Java's
+The provided classes have appropriate methods for serialization, and proper
+equals and hashCode implementations, as well as a comparator for
+`ByteSequence`, so they will be suitable for use in `Set`s and as keys in
+An immutable bytes implementation makes it possible to pass data between APIs
+without the need for performance-killing protective copies. This benefit is
+compounded if this library is used by multiple projects, as the need to make
+protective copies while passing data between a project and its dependency's API
+is eliminated.
+This project aims to provide a fluent and intuitive API, with support for
+conversions to/from other common types, such as `ByteBuffer`, `byte[]`, and
+This project requires at least Java 8, and supports `Stream` and functional
+APIs where appropriate.
+See this [blog post][blog] for some additional background.
+## Safe for APIs
+Using an external library in a project's API poses some risks to that project,
+especially if it and its dependencies depend on different versions of that
+library. This project attempts to mitigate those risks, so that it can be used
+safely by other projects.
+This project is made safe for reuse in other projects' APIs by adopting the
+following principles:
+* Using [Semantic Versioning 2.0.0][semver] to make strong declarations about
+  backwards-compatibility
+* Strongly avoid breaking changes (avoid major version bumps), so that projects
+  can converge on the latest version of this library required by their code and
+  that of their dependencies, without risk of incompatibility
+* No runtime dependencies itself, to eliminate any potential conflicts from
+  transitive dependencies if this library is used
+* Use generic package naming scheme not tied to the Maven coordinates, in case
+  the project relocates or becomes independent of Fluo in the future
+* Practice review-then-commit during development to protect against poor
+  initial design which is stuck with the project for the long-term
+* Provide `@since` tags in Javadocs to communicate minimum required versions
+  for particular features
+## Public API declaration for Semantic Versioning
+This project's public API are all the publicly visible classes, methods, and
+fields accessible outside the project's packages.
+*Apache Fluo Bytes is an [Apache Fluo][fluo] project.*

To stop receiving notification emails like this one, please contact
['"" <>'].

Reply via email to