Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.076.969 Times

extprot 0.1.1

Company: Ryan Kelly
Date Added: September 02, 2013  |  Visits: 339

extprot

Report Broken Link
Printer Friendly Version


Product Homepage
Download (34 downloads)



extprot is a compact, extensible and efficient binary serialization format.<br /><br />This is a python implementation of the 'extprot' serialization scheme, the details of which are descripted in detail at:<br /><br /> http://eigenclass.org/R2/writings/extprot-extensible-protocols-intro<br /><br />Similar to Google's Protocol Buffers and Apache Thrift, extprot allows the definition of structured data "messages". Messages are essentially a set of typed key-value pairs that can be efficiently serialized to/from a compact binary format, and are defined in a language-neutral "protocol" file. Here's a simple example of an extprot message:<br /><br /> message person = {<br /> id: int;<br /> name: string;<br /> emails: [ string ]<br /> }<br /><br />Here the 'person' message contains three fields: 'id' is an integer, 'name' is a string, and 'emails' is a list of strings. Such protocol descriptions are compiled into a set of Python classes that can be manipulated using standard syntax and idioms. If the above protocol is recorded in the file "person.proto", here's a simple example of how it might be used:<br /><br /> >>> extprot.import_protocol("person.proto",globals())<br /> >>> p1 = person(1,"Guido")<br /> >>> print p1.emails # fields use a sensible default if possible<br /> []<br /> >>> p1.emails.append("guido@python.org")<br /> >>> p1.emails.append(7) # all fields are dynamically typechecked<br /> Traceback (mosts recent call last):<br /> ...<br /> ValueError: not a valid String: 7<br /> >>> print repr(p1.to_string())<br /> 'x01x1fx03x00x02x03x05Guidox05x13x01x03x10guido@python.org'<br /> >>> print person.from_string(p1.to_string()).name<br /> 'Guido'<br /> >>><br /><br />Extprot compares favourably to related serialization technologies:<br /><br />* powerful type system; strongly-typed tuples and lists, tagged disjoint unions, parametric polymorphism.<br />* self-delimitng data; all serialized messages indicate their length, allowing easy streaming and skipping of messages.<br />* self-describing data; the 'skeleton' of a message can be reconstructed without having the protocol definition.<br />* compact binary format; comparable to protocol-buffers/thrift, but with some overhead due to self-delimiting nature.<br /><br />These features combine to make extprot strongly extensible, often allowing messages to maintain backward *and* forward compatibility across protocol extensions that include: adding fields to a message, adding elements to a tuple, adding cases to a disjoint union, and promoting a primitive type into a tuple, list or union.<br /><br />md5=f224b07d2242a17a1f2f6afe830ba676

Requirements: No special requirements
Platforms: *nix, Linux
Keyword: Adding Allowing Binary Compact Definition Disjoint Extprot Extprot 0 1 1 Fields Format Gtgtgt Message Messages Print Protocol Serialization Serialized Simple String Union
Users rating: 0/10

License: Freeware Size: 20.48 KB
USER REVIEWS
More Reviews or Write Review


EXTPROT RELATED
Text Chat Clients  -  KNewz 0.1 Beta 2
KNewz project is a binary newsgroup client for KDE4. I wrote it because there is no one client out there that does what I want it to. Planned features include automatic PAR2 checking (via kpart, whee), automatic unpacking of downloaded files,...
92.16 KB  
Boot Managers  -  bicl 0.1.0
bicl is a tool for editing the built-in command line boot arguments in binary files like the PPC64 Linux compressed kernel image and the PPC64 Xen compressed hypervisor boot image. he boot argument processing for powerpc Xen is much less complex...
3.07 KB  
Development Tools  -  DeltaRule 1.0
Routine accepts input variables, binary target variable (0/1) and a small number of training parameters, and returns discovered coefficients for a single neuron.Technical details:Learning rule: incremental delta ruleLearning Rate: constantTransfer...
10 KB  
Programming  -  asm2class 0.1.2
Asm2class is a java assembly to class file compiler. Asm2class is release under the terms of the GPL License. The current version of asm2class (0.1.2) is a beta version and allow generating class file from java assembly file that contains class...
1.17 MB  
Utilities  -  Luau Autoupdate Library 0.1.9
Luau (Lib Update/AutoUpdate) provides basic autoupdate functionality to software projects, allowing not only software updates to propagate quickly through ones user base but also messages and configuration updates.
1 MB  
Programming  -  SBS1 Explorer 0.2.1
The SBS1 Explorer application features a nice GUI allowing a variety of queries to any SBS-1 flights database without having to install the BaseStation software. Simply get a database file (usually BaseStation.sqb) and open it in SBS1 Explorer.
25.61 KB  
Development Tools  -  Separation of a water-methanol mixture using a four stage batch distillation column 1.0
We use a batch column with four theoretical plates to separate a binary mixture of water and methanol at 1 bar. Temperature and concentration profiles versus time are obtained for a reflux ratio equal to 10. In addition, the total moles in the...
20.48 KB  
Multimedia & Graphics  -  YASRT for Linux 0.1 Beta 14
The name YASRT stands for Yet Another Simple RayTracer. YASRT was designed to be a stochastic raytracer. It uses the raytracing algorithm to generate realistic pictures from textual descriptions of three-dimensional scenes. By using Monte Carlo...
952.32 KB  
Libraries  -  App::SVNBinarySearch 0.1.0
App::SVNBinarySearch is a container for functions in the svn_binary_search program. SYNOPSIS No user-serviceable parts inside. svn_binary_search is all that should use this. CONFIGURATION AND ENVIRONMENT App::SVNBinarySearch requires no...
5.12 KB  
Libraries  -  Windows Management Framework 3.0 CTP2 / 2.0
The Windows Management Framework includes the following: - Windows Remote Management (WinRM) 2.0 - Windows PowerShell 2.0 - Background Intelligent Transfer Service (BITS) 4.0 Windows Management Framework makes some updated management...
 
NEW DOWNLOADS IN LINUX SOFTWARE, PROGRAMMING
Linux Software  -  EasyEDA PCB Designer for Linux 2.0.0
EasyEDA, a great web based EDA(Electronics Design Automation) tool, online PCB tool, online PCB software for electronics engineers, educators, students, makers and enthusiasts. Theres no need to install any software. Just open EasyEDA in any...
34.4 MB  
Linux Software  -  wpCache® WordPress HTTP Cache 1.9
wpCache® is a high-performance, distributed object, caching system application, generic in nature, but intended for use in speeding up dynamic web applications, by decreasing database load time. wpCache® decreases dramatically the page...
3.51 MB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB