Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 1.62 KB

File metadata and controls

58 lines (38 loc) · 1.62 KB

uidcore-c

Reference C implementation of the core Uniquid library

This implementation is aimed to be simple and easy to be embedded

it depends on the following libraries:

  • trezor_crypto (block-chain related cryptography)
  • yajl (JSON parser)
  • curl (block-chain access) - the library user can do its own implementation of UID_httpal.c if unable to use curl
  • pthread (for the synchronization mutex)

There is no use of malloc() in the library code, though yajl and curl use malloc in their implementations.
yajl offers a way to implement your own malloc().

It is planned to delete dependencies from yajl
cmake is needed to build yajl under Linux

How to build

Because of the large number of environments that the library targets we give a simple make build system that builds for Linux

These packages should be enaugh to compile the library on a fresh installed Ubuntu 17.10
build-essential
cmake
libcurl4-openssl-dev

To build the documentation you need:
libcunit1-dev

to run the test suite you need:
doxygen

Download the sources from gitthub with
git clone --recurse-submodules git@github.com:uniquid/uidcore-c.git

cd in the uidcore-c directory then just run

make
to build the the shared library

make docs
to build the Doxygen documentation

make run-tests
to build and run the test suite

example code

see
example_init.c for an example of entity initialization
example_provider.c for an example of provider code
example_user.c for an example of user code