From owner-soc-status@FreeBSD.ORG Mon May 26 17:30:47 2014 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7B74D5F9; Mon, 26 May 2014 17:30:47 +0000 (UTC) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 26B062A0E; Mon, 26 May 2014 17:30:46 +0000 (UTC) Received: from [192.168.0.96] (cpc14-cmbg15-2-0-cust307.5-4.cable.virginm.net [82.26.1.52]) (authenticated bits=0) by theravensnest.org (8.14.7/8.14.7) with ESMTP id s4QHUaSi092356 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Mon, 26 May 2014 17:30:38 GMT (envelope-from theraven@theravensnest.org) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\)) Subject: Re: [Machine readable output from userland utilities] report From: David Chisnall In-Reply-To: <15BC1D7C-B909-48DB-AB6D-FF0F0F9C2B0A@mail.bg> Date: Mon, 26 May 2014 18:30:31 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <899129C5-977C-4CE7-A873-460D69D6EA85@theravensnest.org> References: <8D1B686D-1AAA-4E07-9270-E42699110561@mail.bg> <4890861C-FC91-445D-AE9B-31CD5FDFD0A9@theravensnest.org> <15BC1D7C-B909-48DB-AB6D-FF0F0F9C2B0A@mail.bg> To: Zaro Korchev X-Mailer: Apple Mail (2.1874) Cc: vsevolod@FreeBSD.org, soc-status@freebsd.org, Eitan Adler , Pawel Jakub Dawidek , jonathan@FreeBSD.org X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2014 17:30:47 -0000 On 26 May 2014, at 15:34, Zaro Korchev wrote: > I considered using libucl and libnv. The problem with libucl is that = it does not support streamed output so, after a discussion with my = mentors, I decided to implement this prototype version using YAJL. This = is not a final decision but that's what I'm using at the moment. That's fine, as long as you're prototyping an interface for an = abstraction layer it doesn't matter much what is on the back end, I just = wanted to make sure that you were thinking about libucl as an eventual = back end. =20 I've added Vsevolod to the cc list, as he's the author of libucl - = perhaps he can add the missing functionality that you require. I definitely agree that streaming is important - we want to be able to = construct pipes of these, although hopefully the total amount of data = won't be huge. > I may use libnv soon - I just haven't had need for it yet. It has one = limitation that I'm concerned about - it does not support arrays (the = only supported composite data type is key, value pairs). Arrays in libnv came up at BSDCan. Apparently someone (Pawel?) has = patches for arrays, but didn't commit them because there were no = consumers in the base system that needed them. It sounds like you've = just volunteered as a beta tester ;-) It would also be good to consider prepending a header to each stream so = that tools can consume them without having to be aware of the format. = JSON has the nice property that it can be spotted quite easily be = examining the first 4 bytes (in any unicode encoding). I'm not sure if = UCL and NV have the same property - if they do, then we don't need to = worry. David