1 unstable release

Uses old Rust 2015

0.1.0 Feb 3, 2019

#1896 in Encoding

22 downloads per month

GPL-3.0-or-later

60KB
1.5K SLoC

LLSD for Rust

LLSD is a data encoding scheme for structured data. This crate provides a pure Rust implementation of a LLSD serializer and deserializer.

Format

Specification

No formal spec was followed when implementing this crate, however there was an attempt to standardize LLSD in 2010 (IETF link) which should probably be analyzed more in depth in the future.

This implementation is based on the Second Life virtual world Wiki page on LLSD and inspection of the LibOpenMetaverse implementation to resolve a couple of ambiguities.

Overview

Any value is either an instance of a scalar or container type.

The two container types are Map and Array, each instance holds a collection of values. The scalar types are: Boolean, Integer, Real (float), UUID, Date, Uri, Binary, Undefined (absence of value).

Conversions between many of the scalar types are well defined, however some conversions are invalid.

Implementation notes

  • XML: Binary encoding only BASE64, decoding only BASE16 and BASE64 but no BASE85.
  • This API is not stable yet.

License

Copyright (C) 2017-2018  Leonardo Schwarz <mail@leoschwarz.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Disclaimer

Second Life is a trademark of Linden Research, Inc.

Teleport Lab and LLSD for Rust are not affiliated with or sponsored by Linden Research.

Dependencies

~12MB
~288K SLoC