Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3BC15200CDE for ; Tue, 8 Aug 2017 19:33:10 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3A5901679D7; Tue, 8 Aug 2017 17:33:10 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 879A61679CF for ; Tue, 8 Aug 2017 19:33:09 +0200 (CEST) Received: (qmail 81365 invoked by uid 500); 8 Aug 2017 17:33:07 -0000 Mailing-List: contact dev-help@fluo.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@fluo.incubator.apache.org Delivered-To: mailing list dev@fluo.incubator.apache.org Received: (qmail 81202 invoked by uid 99); 8 Aug 2017 17:33:06 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 Aug 2017 17:33:06 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 5D1031A01BE for ; Tue, 8 Aug 2017 17:33:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.481 X-Spam-Level: X-Spam-Status: No, score=0.481 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=deenlo-com.20150623.gappssmtp.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id aiFRr8MG7K06 for ; Tue, 8 Aug 2017 17:33:05 +0000 (UTC) Received: from mail-qt0-f171.google.com (mail-qt0-f171.google.com [209.85.216.171]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id B61065F570 for ; Tue, 8 Aug 2017 17:33:04 +0000 (UTC) Received: by mail-qt0-f171.google.com with SMTP id v29so23492622qtv.3 for ; Tue, 08 Aug 2017 10:33:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deenlo-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=HKAuo093K0EYG4EMzFY7dPqvDJ7gTpD/pYaZdvYNDUw=; b=zeJY19aiXg4V1HDkYM4K0PBI1iVJT8KsRVKBkf9LgOHNLYLu+wYayVYHFS5oc1SPEY NSWWfbF4DfCuJnlLbR3TyqP/7EKq3HnxscUOcqnu0v3SegqYCWNRVWh+0u/6dAdchPTl CKCirPc2/EQW5kycy3ONSABCZcdMw0U3NQ2UCGZuQAzfZuz5Ub8IoglLg9hn+ZlXANcI xgwVxzvECrbghEc/c/Dr3xWi4Z+unEPvoaFDdW/opvKn4s8Gs0mp5+G9TVm/ECuXh/yd FMp8faIKf2Uf4Af4gkjVxaevnWX5wLB4uTz3O+Y5EQt3XRk5GQj4HYqIzF3BMeupO0vn SshA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=HKAuo093K0EYG4EMzFY7dPqvDJ7gTpD/pYaZdvYNDUw=; b=n4YrjbpyXHTQxWH2Kr+FrBkzn/t7ZGl1o2XCFijNusVepfqHmV4DFDBCgQLjhOLenN uuKDz6KX90dPU9IDCn7FN22qn/gm/P2aq3RyxqtDmiBe1JXd1BycyJt15fDrHKOlta68 Rn/tOpEddxePYNpreGXwxyH4DweqEWPRTYJRRWn4z30iXKAHcRXDUBecy7LK9XzN68Ia STT4OKk6Nznp19wQfrjpfBAo6wkvkA9gXgI7yEtAr6afj4c0zTJjre+m2Fr2S4oi8f7A +TMPPhIAk32XsItVOADosLGy9VViU5dlObPG4hBVFDD7IOHfX4eclSo23pyFHhnf3sQo PSNg== X-Gm-Message-State: AHYfb5h9RhxqpqSU1MCKHQeeMxp2Fi29mfterEs4q5Z0zFwXUfSX9MsJ 3dS88IhpV09OThZCpQaAyoqKFer7KruMnzE= X-Received: by 10.200.34.173 with SMTP id f42mr7119059qta.150.1502213577485; Tue, 08 Aug 2017 10:32:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.213.240 with HTTP; Tue, 8 Aug 2017 10:32:57 -0700 (PDT) In-Reply-To: References: From: Keith Turner Date: Tue, 8 Aug 2017 13:32:57 -0400 Message-ID: Subject: Re: About fluo-bytes To: dev@fluo.incubator.apache.org Content-Type: text/plain; charset="UTF-8" archived-at: Tue, 08 Aug 2017 17:33:10 -0000 On Fri, Aug 4, 2017 at 4:42 PM, Christopher wrote: > Fluoers, > > I created a fluo-bytes repository in GitBox[1], so we can try to create a This is great. I will take a stab at putting together the initial PR for the repo unless someone else was interested. > dependency-free, standalone implementation of the basic Bytes features we > need, based on Keith's observations in his blog post[2]. At some point we need to circle back to the openjdk discuss list and let them know we are working on this. There were a few people there who expressed interest in a project like this. Maybe we can do that after we get the basic readme and initial import up. Reading this post made me think of the readme a lot. > > Over the next few weeks, I'd like to try to start using it to create a > small library of the following: > > * A ByteSequence interface (analogous to CharSequence) > * BytesBuilder (analogous to StringBuilder) > * an immutable Bytes implementation of ByteSequence (analogous to String) > > Maybe later, we can add useful InputStream and OutputStream implementations > and other useful tools, but it should always be a small library with a > narrow focus on manipulating byte sequences. > > The idea is that this will be semver, but will very strong prefer to avoid > ever going to a breaking 2.0 change, instead insuring it will be backwards > compatible for a *LONG* time, making it safe for use in other projects' > APIs. When creating the readme, it would be good to try to explain the rational for avoiding dropping methods. I attempted that in my blog post, but not sure how well I did at getting the point across. I think it would be best shown with an example that shows how it can be hard to use two projects where one uses newer methods and another uses older dropped methods. Couple that with both projects having the library in their API and its a huge headache for any users of both libraries. > > I think this library would be useful not only for Fluo's API, but as a > separate dependency-free library, it could be easily reused by many other We will also need to explain why dependencies are so important. If their were dependencies they would also need to follow very strict API guarantees. Having Java standard libs as the only dep is good because Java itself is very rigorous about its API. Another thing that will need to be explained well in the readme is the benefit of multiple APIs using the same immutable type, it avoids copies when going between APIs. > projects, such as Accumulo (and anybody else). > > [1]: https://github.com/apache/fluo-bytes > [2]: https://fluo.apache.org/blog/2016/11/10/immutable-bytes/