Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/angulartist/yaconstrip
YACONSTRIP - Yet Another CONsent STRIng Parser
https://github.com/angulartist/yaconstrip
Last synced: 2 months ago
JSON representation
YACONSTRIP - Yet Another CONsent STRIng Parser
- Host: GitHub
- URL: https://github.com/angulartist/yaconstrip
- Owner: angulartist
- Created: 2023-07-15T11:23:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-16T12:24:43.000Z (over 1 year ago)
- Last Synced: 2023-07-16T12:42:39.008Z (over 1 year ago)
- Language: C++
- Size: 371 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# YACONSTRIP - Yet Another CONsent STRIng Parser
Universal Consent String Parsing
![YACONSTRIP](docs/header.png)
Q:What?
A: IAB TCF Consent String Parser, yeah... another one, but it works, in multiple languages.## Block diagram of the TC String
TC String structure: `[CORE].[DISCLOSED_VENDORS].[PUBLISHER_RESTRICTIONS]`### Core:
![](docs/core_string.svg)
### Disclosed Vendors:
![](docs/disclosed_vendors.svg)
### Publisher Purposes Transparency and Consent:
![](docs/publisher_tc.svg)
## Key Features 🎯
- **One ring... to rule them all**: One code, many languages:
- C++/STL
- C#
- Go
- Java
- JavaScript
- Lua
- Nim
- Perl
- PHP
- Python
- Ruby
- **Easy to maintain**: IAB updated their guidelines? No problem, update the _.ksy_ definition files then use the compiler to re-build the modules.## Roadmap 🎯
- Add more examples## Getting Started 🚀
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
### Prerequisites 📋
Ensure you have the following installed:
- [Kaitai Struct Compiler](https://kaitai.io/#download)Optionally, you might want the [Kaitai Struct Visualizer](https://github.com/kaitai-io/kaitai_struct_visualizer)
### Installation Steps 💽
Step 1: Clone this repository:
```bash
git clone https://github.com/angulartist/yaconstrip.git && cd yaconstrip
```Step 2: Import the modules you want from `modules/`
### Compile the .ksy files
```bash
# language specific
kaitai-struct-compiler --outdir [path/to/output/dir] -t [language] [path/to/.ksy/files]# example (compile .ksy for Javascript)
kaitai-struct-compiler --outdir examples/javascript/compiled_ksy -t javascript kaitai/*# or, build modules for all supported languages
./compile-all.sh
```## Examples ✨
You can find some inspirations in the [examples](examples/) folder.
## Contributors ✨
Thanks go to these wonderful people:
## Contribute 🤝
Got a pull request? Open it, and we'll review it as soon as possible.
- [Open Issues](https://github.com/angulartist/yaconstrip/issues)
- [Open Pull Requests](https://github.com/angulartist/yaconstrip/pulls)## Resources 📋
- IAB TCF DOC : [Official IAB TCF Consent String Documentation](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20Consent%20string%20and%20vendor%20list%20formats%20v2.md)
- About Kaitai Struct : https://kaitai.io/