Subject: [vwrap] Linden Lab open source LLSD code

From: Mark Lentczner <[email-masked]>
Date: Mon, 7 Jun 2010 16:38:55 -0700

I'm happy to announce that Linden Lab has open sourced (MIT licensed) its LLSD implementations in four languages: C++, JavaScript, Haskell, and Python. The code can be found here:
	http://hg.secondlife.com/llsd

Please let me know if this is useful, and if you need any help using it.

	- Mark & Josh

From the README file:

Linden Lab LLSD Libraries
-------------------------
    v1 - 2010-06-07 - Joshua Bell & Mark Lentczner

ABOUT
=====

LLSD is defined in draft-hamrick-vwrap-type-system-00. It is a structured data
system used for interchange. See the draft for more details:

    http://tools.ietf.org/html/draft-hamrick-vwrap-type-system-00

The design and development of LLSD is being undertaken by the IETF VWRAP
working group. Please direct design and development questions to its mailing
list.

    wiki - http://trac.tools.ietf.org/wg/vwrap/trac/wiki
    list - https://www.ietf.org/mailman/listinfo/ogpx
    
This distribution contains Linden Lab's open source (MIT licensed)
implementations of the LLSD type system in four langauges:

    C++         LLSD
    JavaScript  LLSD & LLIDL
    Haskell     LLSD & LLIDL
    Python      LLSD & LLIDL (*)

There are four directories, one per file, and each has its own README file with
details for building and using the code. All versions have unit tests.

Questions regarding these libraries can be directed to Josh or Mark:
    [email-masked]
    [email-masked]

Linden Lab hopes that by releasing these open source, it will help facilitiate
the development of LLSD, as well as ease interoperatibility with currently
deployed systems that use LLSD such as Second Life and OpenSim.

    - Josh & Mark
    
(*) The Python version is currently distributed in a separate repository:
    http://hg.secondlife.com/llbase/
The intention is to eventually migrate it here.

Mark Lentczner
Sr. Systems Architect
Technology Integration
Linden Lab

[email-masked]

Zero Linden
[email-masked]

---

From: "Hurliman, John" <[email-masked]>
Date: Mon, 7 Jun 2010 17:48:36 -0600

Great to hear, the number of liberally licensed implementations of LLSD is up to five now (including the C# implementation in the libomv repository). Is an up to date PHP implementation on Linden's roadmap, or would it make sense for someone else to start porting one of these implementations to PHP?

John

From: [email-masked] [mailto:[email-masked]] On Behalf Of Mark Lentczner
Sent: Monday, June 07, 2010 4:39 PM
To: vwrap
Subject: [vwrap] Linden Lab open source LLSD code

            - Mark & Josh

ABOUT
=====

    C++         LLSD
    JavaScript  LLSD & LLIDL
    Haskell     LLSD & LLIDL
    Python      LLSD & LLIDL (*)

Questions regarding these libraries can be directed to Josh or Mark:
    [email-masked]<mailto:[email-masked]>
    [email-masked]<mailto:[email-masked]>

    - Josh & Mark

Mark Lentczner
Sr. Systems Architect
Technology Integration
Linden Lab

[email-masked]<mailto:[email-masked]>

Zero Linden
[email-masked]<mailto:[email-masked]>

---

From: Xugu Madison <[email-masked]>
Date: Tue, 8 Jun 2010 02:37:06 +0100

For reference the Java LLSD implementation (although it is a partial
implementation, and primarily intended for use with RegAPI) is BSD
licensed, which makes six...

http://mimuve.cs.st-andrews.ac.uk/llsd-java/src/llsd-java-0.2.1.zip

On 8 June 2010 00:48, Hurliman, John <[email-masked]> wrote:
> Great to hear, the number of liberally licensed implementations of LLSD is
> up to five now (including the C# implementation in the libomv repository).
> Is an up to date PHP implementation on Linden’s roadmap, or would it make
> sense for someone else to start porting one of these implementations to PHP?
>
>
>
> John
>
>
>
> I'm happy to announce that Linden Lab has open sourced (MIT licensed) its
> LLSD implementations in four languages: C++, JavaScript, Haskell, and
> Python. The code can be found here:
>
> _______________________________________________
> vwrap mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/vwrap
>
>

---

From: Mark Lentczner <[email-masked]>
Date: Tue, 8 Jun 2010 16:49:12 -0700

On Jun 7, 2010, at 4:48 PM, Hurliman, John wrote:
> Is an up to date PHP implementation on Linden’s roadmap, or would it make sense for someone else to start porting one of these implementations to PHP?

I've just added our PHP implementation to the repo. While we use it internally extensively, it only support XML serialization. It isn't nearly as complete an implementation as the others. However, now it's released open source too, so enjoy, extend!

	- Mark

Mark Lentczner
Sr. Systems Architect
Technology Integration
Linden Lab

[email-masked]

Zero Linden

---

From: Joshua Bell <[email-masked]>
Date: Thu, 17 Jun 2010 10:37:52 -0700

FYI, I've added:

Ruby:
* A small impl that just supports XML serialization. Hopefully someone can
take it farther. This is tagged as "v3".

C++
* JSON serialization support, with unit tests. Note that Linden doesn't use
this in production (yet) so approach the code with caution.
* As proposed on the WG: asBinary() for string values now does a base64
decode and returns the binary data if successful, an empty vector otherwise;
 asString() for binary values now does a base64 encode and returns the
string.
* I limit the serialization of fractional seconds in dates to 3 places to
match other languages. This change may need to be reverted.
* I have not built/tested these changes on Windows or Mac OS, so this is not
yet tagged.