Linux SoftwareProgrammingLibrariess11n 1.2.4

s11n 1.2.4


s11n (an abbreviation for serialization) is an Open Source project focused on the generic serialization of objects (i.e., object pers
Developer:   Stephan Beal
      more software by author →
Price:  0.00
License:   Public Domain
File size:   0K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


s11n (an abbreviation for serialization) is an Open Source project focused on the generic serialization of objects (i.e., object persistence) in the C++ programming language.

s11n library, appropriately named libs11n, can easily serialize all manner of PODs (Plain Old Data types), most STL containers, and user-defined Serializable types.

By taking advantage of relatively new, advanced C++ techniques s11n turns this formerly-difficult task into child's play. It supports literally hundreds of millions of combinations of standard containers out of the box. libs11n is 100% data-format agnostic, and currently includes support for 7 formats, including 3 XML flavours.

(As far as i am aware, this exceeds support provided by any other serialization framework, regardless of the implementation language!)

Here are some key features of "s11n":
  • Provides client code with easy de/serialization of arbitrary streamable types, user-defined Serializable types and various STL containers.
  • Most STL containers can be serialized with no special client-side work, as long as all contained types are either Serializable or are of a supported container type. e.g., std::map is serializable as long as MySerializable is.
  • Does not tie clients to a specific serializable interface/heirarchy. The internally-used interfaces can be easily directed to use client-specific serializable interfaces, which means that the library can be made to conform to your projects, as opposed to your projects conforming to it.
  • User types can be made serializable "intrusively" - by implementing serialization opertors - or via proxying, in which case they need know nothing about s11n.
  • Serializer proxies can be written for almost any classes. For example, Qt objects can be serialized via this library without changing those objects. Proxies allow almost any type to be serialized without the object knowing it is participating in serialization.
  • Lends itself well to a large number of uses, from de/serializing arbitrary vectors or maps of data (a-la config files) to saving whole applications in one go (the amount of code is the same for the client, either way).
  • API is 100% data-format agnostic. Several different data format handlers are provided with the library, and adding your own is fairly painless. If you use s11nlite, as opposed to the core library, then you never even need to know what format your data is saved in.
  • Optional client-transparent zlib and bz2lib file de/compression (for amazing file size reduction).
  • A weird and wonderful classloader.
  • The model inherently does not suffer (as, e.g., Java's does) from the problem of invalidating serialized data every time an internal change is made to a serializable data type. It's properties-based system ensures that data do not become un-deserializable until the developer wants them to become so. It also ensures that clients written in different programming languages can deserializer your data, provided they have a way of converting the class types to local implementations. (Naturally, they can always read the raw data, without deserializing it, without any special support.)
  • By implementing an API front-end - like the included s11nlite namespace - client objects can be made 100% ignorant of the s11n core, enhancing non-intrusivity. This can also be used to factor all of the necessary APIs into one client-side namespace for easy access from client code.

    Requirements:
  • Recent, ISO-conformant C++ compiler. Only tested with with GNU gcc 3.{2,3,4}.x, and will not work with gcc 2.9x.
  • GNU versions of most common Unix system tools, like make, find, bash, etc.
  • Only tested on Linux systems. Your mileage may vary on other OSes. That said, it uses no Linux-specific source code, but the build tree itself is very GNU-centric. That said, it is reported, by the Debian team, to build on at least 11(!!!) different Unix-like platforms (that tickles me pink, really).
  • Either libdl or libltdl. These are used for opening DLLs, and are pre-installed on all modern Unix-like environments.
    tags data format  stl containers  your data  objects can  your projects  almost any  ensures that  unix like  that said  only tested  the library  does not  serializable types  

    Download s11n 1.2.4


     http://prdownloads.sourceforge.net/s11n/libs11n-1.2.4.tar.bz2?use_mirror=heanet
     http://prdownloads.sourceforge.net/s11n/libs11n-1.2.4.tar.bz2?use_mirror=switch
     http://prdownloads.sourceforge.net/s11n/libs11n-1.2.4.tar.bz2?use_mirror=puzzle


    Authors software

    s11n 1.2.4 (by Stephan Beal)
    s11n (an abbreviation for serialization) is an Open Source project focused on the generic serialization of objects (i.e., object pers


    Similar software

    s11n 1.2.4 (by Stephan Beal)
    s11n (an abbreviation for serialization) is an Open Source project focused on the generic serialization of objects (i.e., object pers

    Faster Java Serialization 0.22 (by Leonardo Mesquita)
    Faster Java Serializations goal of the project is to enable faster serialization by generating bytecodes on the fly to serialize obje

    Java Serialization to XML 2.2.5.2 (by JSX Enterprises)
    Java Serialization to XML (JSX in short) translates between Java and XML, making it possible to search, test, profile, and audit your

    Object::Relation::DataType 0.1.0 (by Kineticode, Inc.)
    Object::Relation::DataType is a Perl module with complex data types for TKP.

    The Object::Relation::DataType name space is set asid

    Ajazz 0.1.0 (by Sean Levy)
    Ajazz implements asynchronously fetched client-side data objects for web applications using JavaScript, XMLHttpRequest objects (so-ca

    CSer 0.0.1 (by Jeff Freedman)
    CSer is a library for C++ serialization, also called 'persistence'

    XStream 1.2.1 (by Joe Walnes)
    XStream is a simple library to serialize objects to XML and back again

    MynahSA 0.84 (by Mynah-Software Ltd.)
    MynahSA is a cross-platform toolkit for connecting C++ objects to data streams

    xsd 2.3.0 (by Boris Kolpackov)
    xsd is a W3C XML Schema to C++ translator

    Simple XML Framework 1.0 (by Niall Gallagher)
    Simple is an XML serialization framework for Java


    Other software in this category

    zlib 1.2.3 (by Jean-loup Gailly)
    zlib is designed to be a free, general-purpose, legally unencumbered, lossless data-compression library for use on virtually any comp

    libjpeg v6b (by Independent JPEG Group)
    libjpeg is a library for handling the JPEG (JFIF) image format

    OpenSSL 0.9.7c (by The OpenSSL Project Team)
    The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implement

    libxml2 2.6.27 (by DV)
    Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), libxml2 library i

    GNU C library 2.4 (by Andreas Jaeger)
    GNU C library (glibc) is one of the most important components of GNU Hurd and most modern Linux distributions.

    GNU C library is us

  •     search


    Featured Software

    jEdit 4.3 pre8
    jEdit is an Open Source text editor written in Java

    Opera 9.02
    Surf the Internet in a safer, faster, and easier way with Opera browser

    GNU Aspell 0.60.4
    GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


    Subscribe in Rojo
    Google Reader
    Add to My Yahoo!

    Add to My AOL
    Subscribe with Bloglines
    Subscribe in NewsGator Online
    Add 'nixbit linux software' to Newsburst from CNET News.com
    del.icio.us nixbit linux software


    Top tags