Getting started #
To see Hermes-core working, you need to perform the following actions.
Installing or building Hermes-core #
You can build it manually from source, or install from the available package manager.
- If you are running Ubuntu, Debian or CentOS, check Installing from repository.
- If you want to have the latest version of Hermes-core, you can build it from sources: Building Hermes core.
Hermes-core is available on C, however, client side applications are implemented on C, Python and Go:
|C core / C client||Local CLI tutorial||docs/examples/c/mid_hermes_low_level|
|C core / C client||C tutorial||docs/examples/c|
|C core / Python client||Python tutorial||docs/examples/python|
|C core / Go client||Go tutorial||docs/examples/go|
Moreover, Hermes natively supports:
|Server side||Client side (languages)|
|Docker, VMs, GCP, AWS, Ubuntu, Debian, CentOS, macOS||iOS, Android, Java, Ruby, PHP, Python, Node.js, Go, Rust, C/C++|
Hermes itself supports the following architectures: x86x64, armv*, various Android architectures:
- Debian (8, 9), CentOS 7, Ubuntu (14.04, 16.04, 18.04),
- macOS (10.12 - 10.15, 11),
- Android (6 - 12) / CyanogenMod 11+,
- iOS (12 - 15),
- Docker-containers, VMs.
Hermes-core has limited support, only x86/x64 platforms.
Running examples #
Usage examples describe how examples work and what are possible usages for Hermes-core.
High-level tutorials #
Consider checking out full tutorials to understand how to add and update blocks, grant READ and UPDATE access right for users, revoke access rights.
- C tutorial, where both Hermes and client app are written in C.
- Python tutorial, where Hermes app is C-based, but client code runs on Python.
- Go tutorial, where Hermes app is C-based, but client code runs on Go.
The next steps #
As your next steps towards exploring Hermes-core, we advise you to:
- study the source code and the architectural overview,
- find out how things work,
- read a more in-depth overview of the examples,
- simply read the docs,
- go deeper and read Hermes – a framework for cryptographically assured access control and data security theoretical paper as well as the implementation-oriented document Implementing Hermes-based Security Systems.