Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional UCL Support? #18

Open
techdragon opened this issue Jul 25, 2019 · 6 comments
Open

Optional UCL Support? #18

techdragon opened this issue Jul 25, 2019 · 6 comments

Comments

@techdragon
Copy link

Support getting configuration values from UCL files.

Specifications

It would be nice to include support for UCL / libUCL based configuration files. These are common enough on FreeBSD that it would be useful. https://github.com/vstakhov/libucl

@issue-label-bot
Copy link

Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.99. Please mark this comment with 👍 or 👎 to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

@naorlivne
Copy link
Owner

naorlivne commented Jul 25, 2019

Had a look at it & the only issue I have with it is that the python package in the given link is in fact just a wrapper around the C codebase which means a enduser will have to ensure he has a C compiler to install it & that it will take considerably longer then a dedicated Python parser (both are things you generally want to avoid in today containerized microservice world).

Is there any Python parser your familiar with that doesn't require C compiling for UCL? I'd like to keep the install to just be a pip install without any external dependencies.

@techdragon
Copy link
Author

@naorlivne would having pre-built wheels for the python library, with the c library already compiled and included also be a solution?

@naorlivne
Copy link
Owner

naorlivne commented Jul 29, 2019

There are a few problem with pre-build wheels as I see it:

  • Will require parse_it to be pre-built based on the underlying CPU architecture (X64\ARMv8\ARMvX\etc) so multiple versions will be needed
  • Will need to have some hashing to ensure unmodified version of the precompiled c library to reassure endusers the libucl version is unmodified
  • Extra complexity during CI/CD

On a personal note I wouldn't see it as a problem if it was a service\product that runs as a full software or inside a container but as an open source library that could be used anywhere it's a bit more of a problem.

Take it you don't know of any pure Python UCL parser instead?

@techdragon
Copy link
Author

Very good points there, but I meant the libUCL python library could be improved by having them produce pre-built wheels with their C library instead of leaving it up to end users. I've got some sprint days at a python conference coming up so I figure I could improve their python packaging situation a bit first, then once that was better the library would be more suitable for use in parse_it.

@naorlivne
Copy link
Owner

If you can get libUCL to work with pip install even if it has precompiled C in it on all CPU architectures (On a personal note I have a few ARM based systems also using it so it will be easy for me to test it on) then that will take care of all the issues I had with it & I see no reason why not to include it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants