Giter Club home page Giter Club logo

marshalling's Introduction

=nil; Foundation Marshalling Library

This library is used throughout the project to transform data from one type to another. To define representation rules for custom type we use template-defined pseudo-DSL.

Building

This library uses Boost CMake build modules (https://github.com/BoostCMake/cmake_modules.git). To actually include this library in a project it is required to:

  1. Add CMake Modules as submodule to target project repository.
  2. Add all the internal dependencies using CMake Modules as submodules to target project repository.
  3. Initialize parent project with CMake Modules (Look at crypto3 for the example)

Dependencies

Internal

External

marshalling's People

Contributors

nkaskov avatar zerg1996 avatar nemothenoone avatar rinat229 avatar andreymlashkin avatar iluvmagick avatar super-genius avatar x-mass avatar

Stargazers

App Service avatar Devspace avatar

Watchers

James Cloos avatar  avatar  avatar Valeh Farzaliyev avatar Alexandra Mirzuitova avatar Konstantin Nazarov avatar Stepan Kolesnikov avatar  avatar  avatar Tigran Hayrapetyan avatar  avatar  avatar

marshalling's Issues

Consider removing tag

It looks like the tag type was previously used only for type traits. If so, it's necessary to rewrite type-traits and remove that type.

Consider switching to bit-size length

Types length and all the related logic are counted in bytes (8-bit) for now. For the purposes of versatility we better switch to bit-oriented counting.

Simplify field options

There is a great idea how to simplify field options:
422ddf4e2edd55b514533f81855b3b32c227b16e

Separation of network marshalling

Currently, marshalling module contains a lot of things, which ways of usage are very limited to some network tasks. It will be better to move all this functionality to a separate module.

Introduce little-bits endianness

Currently, we only have big-endian and little-endian.
little_unit_little_bit and big_unit_little_bit are required to be added to fulfill all the current needs.

As I see it now, requires extending the processing namespace with corresponding functions.

Documentation review

There is a lot of outdated links and mentions in the doxygen documentation right now. It should be fixed.

Move pack test from crypto3::detail to this module

At the moment, pack algorithm is part of long-running backlog. It is placed in the crypto3::detail namespace. We must substitute it by the marshalling pack. To be sure, that we made correct substitution, we need to move pack tests to marshalling and ensure, that there is no probplems with that.

Review type traits

Module has a lot of internal type traits. They all have to be reduced to the same form.

Add synchronization between crypto3 submodules PRs

We want to implement CI/CD pipeline, where different submodules of crypto3 will be tested with respect to each other PRs, if all those PRs are linked to the same issue using [SyncWith org/repo#issue] syntax in PR's title.
Current issue will be used for testing of this functionality

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.