grc-iit / ChronoLog

ChronoLog: A High-Performance Storage Infrastructure for Activity and Log Workloads
https://chronolog.dev
BSD 2-Clause "Simplified" License
5 stars 4 forks source link

56 python chronolog client bindings #174

Closed ibrodkin closed 3 weeks ago

ibrodkin commented 3 weeks ago

This PR has python bindings for our current C++ API and a simple example showing how python client can be used

py_chornolog_client is our new build target

  1. unordered_map of attributes used in some of chronolog::Client methods are replaced with std::map
  2. I decided not to create Python Bindings for ConfigurationManager as we will remove it from client library in our next release. I added very basic ClientPortalServiceConf class that is wrapped in python.
  3. I added constructors to all Client implementation classes that take ClientPortalServiceConf instead of ConfigurationManager
  4. I added default initialization for the Logger Instance inside Client instance creation as we do rely on the logger being available in our library code but expect the client application to create one.
  5. the rest of the changes are pybind11 wrappers for chronolog::StoryHandle and chronolog::Client classes