View on GitHub Viant Engineering

GoHessian


Changelog

Usage
Guide

Home

What is GoHessian?

GoHessian is a hessian serializer, implemented using the Go language.

About Hessian

Hessian is a binary web service protocol that is usable without large amounts of framework. Simple, it is easy to use without learning a mountain of protocols. Its nature as a binary protocol make it well suited to sending binary data without a need for extending the protocol with attachments.

About Go

Go is an open soure programming language. Designed by a team at Google, Go is a minimalistic language that still maintains the power of other, more complex languages.

Latest Version

The latest stable version is gohessian 1.0.0.

See our usage guide page for instructions to get the latest version.

Features

  1. Hessian
    • Usable without large amounts of framework
    • Easy to use
    • Language independent
    • Works well with binary data
  2. Go
    • Fast(compiling a large program on a single computer in seconds)
    • The Go software construction model helps reduce the hassle of dependency analysis and cuts the overhead seen in many languages down significantly
    • Non-hierarchical typing means no time spent defining type relationships
    • Statically typed, but lighter weight than typical object oriented languages
    • Fully garbage collected
    • Highly compatible with mulitcore machines
  3. Use With Other Projects
    • GoHessian is compatiable with other projects that can use a serializer
    • An example is CacheStore
  4. GoHessian
    • Binary encoding and decoding
    • Implements hessian binary web service protocol
    • Fast, encoding and decoding in less than a tenth of a second
  5. New features currently in development

Architecture

GoHessian is made up of several parts. The first part, codeconst.go, declares a number of constants vital to the operation of GoHessian. The second part is split into two seperate but deeply interconnected pieces encoder.go and decoder.go. As the names suggest, this two programs are responsible for encoding and decoding values. Lastly, these all come together in the file serializer.go. This is where the actual gohessian methods discussed in our usage guide are implemented.