https://github.com/y-scope/clp-ffi-js
https://github.com/y-scope/clp-ffi-js
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/y-scope/clp-ffi-js
- Owner: y-scope
- License: apache-2.0
- Created: 2024-06-30T02:21:22.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-22T09:07:14.000Z (10 months ago)
- Last Synced: 2025-10-28T17:31:57.483Z (8 months ago)
- Language: C++
- Size: 107 KB
- Stars: 5
- Watchers: 4
- Forks: 9
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
clp-ffi-js is a JavaScript FFI library for [CLP]. It currently supports decoding log events from CLP
IR streams. Other CLP features are being added incrementally.
You can use GitHub issues to [request features][feature-req] or [report bugs][bug-report].
# Building
## Requirements
* CMake >= 3.16
* GNU Make
* Python 3
* [Task] >= 3.48.0
## Setup
Initialize and update submodules:
```shell
git submodule update --init --recursive
```
## Common build commands
To build the project:
```shell
task
```
To clean the build:
```shell
task clean
```
## Docs
To build the TypeDoc documentation:
```shell
task docs:site
```
The generated site is written to `build/docs`.
To serve the generated documentation locally:
```shell
task docs:serve
```
# Contributing
Follow the steps below to develop and contribute to the project.
## Set up
Before opening the project in an IDE, run the commands below.
Download and install [emscripten]:
```shell
task emsdk
```
Download the required source dependencies:
```shell
task deps
```
Set up the config files for our C++ linting tools:
```shell
task lint:cpp-configs
```
## Linting
Before submitting a pull request, ensure you’ve run the linting commands below and either fixed any
violations or suppressed the warning.
To run all linting checks:
```shell
task lint:check
```
To run all linting checks AND automatically fix any fixable issues:
```shell
task lint:fix
```
### Running specific linters
The commands above run all linting checks, but for performance you may want to run a subset (e.g.,
if you only changed C++ files, you don't need to run the YAML linting checks) using one of the tasks
in the table below.
| Task | Description |
|-------------------------|----------------------------------------------------------|
| `lint:cpp-check` | Runs the C++ linters (formatters and static analyzers). |
| `lint:cpp-fix` | Runs the C++ linters and fixes some violations. |
| `lint:cpp-format-check` | Runs the C++ formatters. |
| `lint:cpp-format-fix` | Runs the C++ formatters and fixes some violations. |
| `lint:cpp-static-check` | Runs the C++ static analyzers. |
| `lint:cpp-static-fix` | Runs the C++ static analyzers and fixes some violations. |
| `lint:yml-check` | Runs the YAML linters. |
| `lint:yml-fix` | Runs the YAML linters and fixes some violations. |
[bug-report]: https://github.com/y-scope/clp-ffi-js/issues/new?labels=bug&template=bug-report.yml
[CLP]: https://github.com/y-scope/clp
[emscripten]: https://emscripten.org
[feature-req]: https://github.com/y-scope/clp-ffi-js/issues/new?labels=enhancement&template=feature-request.yml
[Task]: https://taskfile.dev