Skip to content
/ xdr Public

XDR encoded data structures (RFC 4506) in Elixir

Notifications You must be signed in to change notification settings

sunny-g/xdr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XDR

XDR encoded data structures (RFC 4506) in Elixir

Source | Documentation

Build Status

XDR provides:

  • base XDR type modules
  • compound XDR type modules for defining your own custom types
  • built-in validation, encoding and decoding functions for each base and compound/custom module

Installation

Install from Hex.pm:

def deps do
  [{:xdr, "~> 0.1.2"}]
end

API Overview

# base type modules
# can be used as is
XDR.Type.Int
XDR.Type.Uint
XDR.Type.Bool
XDR.Type.HyperInt
XDR.Type.HyperUint
XDR.Type.Float
XDR.Type.DoubleFloat
XDR.Type.QuadrupleFloat  # not implemented
XDR.Type.Void

# compound type modules
# create your own custom type modules with the `__using__` macro, the options for which are defined within each module
# examples can be found in each module's tests within the `test` directory
XDR.Type.Enum
XDR.Type.FixedOpaque
XDR.Type.VariableOpaque
XDR.Type.String
XDR.Type.FixedArray
XDR.Type.VariableArray
XDR.Type.Struct
XDR.Type.Union
XDR.Type.Const
XDR.Type.Optional

Changelog

Version Change Summary
v0.1.2 negative integers in Enums
v0.1.1 minor bugfix
v0.1.0 initial release

Contributing

  1. Fork it https://github.com/your_username/xdr/fork
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Maintainers

Contributors

License

MIT

About

XDR encoded data structures (RFC 4506) in Elixir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages