ooni-probe-cli/internal/engine/libooniffi
Simone Basso d57c78bc71
chore: merge probe-engine into probe-cli (#201)
This is how I did it:

1. `git clone https://github.com/ooni/probe-engine internal/engine`

2. ```
(cd internal/engine && git describe --tags)
v0.23.0
```

3. `nvim go.mod` (merging `go.mod` with `internal/engine/go.mod`

4. `rm -rf internal/.git internal/engine/go.{mod,sum}`

5. `git add internal/engine`

6. `find . -type f -name \*.go -exec sed -i 's@/ooni/probe-engine@/ooni/probe-cli/v3/internal/engine@g' {} \;`

7. `go build ./...` (passes)

8. `go test -race ./...` (temporary failure on RiseupVPN)

9. `go mod tidy`

10. this commit message

Once this piece of work is done, we can build a new version of `ooniprobe` that
is using `internal/engine` directly. We need to do more work to ensure all the
other functionality in `probe-engine` (e.g. making mobile packages) are still WAI.

Part of https://github.com/ooni/probe/issues/1335
2021-02-02 12:05:47 +01:00
..
testdata chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
.gitignore chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
buildtest.bash chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
ooniffi_test.go chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
ooniffi.c chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
ooniffi.def chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
ooniffi.go chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
ooniffi.h chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
README.md chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00

Directory github.com/ooni/probe-engine/libooniffi

This directory contains code to generate shared/static libraries with a Measurement Kit compatible ABI. To this end, we wrap the oonimkall API with a simple C API.

The generated libraries have a Measurement Kit compatible ABI. You can also instruct your compiler so that ooniffi.h defines macros that make code written for Measurement Kit compile and work. To this end, please see comments insider ooniffi.h.

To see how we compile this library for several systems, please take a look at libooniffi.yml.

This is not used in any OONI product. We may break something in ooniffi without noticing it. Please, be aware of that.