20 releases (3 stable)
new 1.1.16 | Dec 11, 2024 |
---|---|
1.1.1 | Nov 18, 2024 |
0.8.17 | Nov 7, 2024 |
#941 in Development tools
600 downloads per month
4.5MB
29K
SLoC
Contains (Windows DLL, 2MB) AdGuard.Utils.dll, (Windows DLL, 1MB) AdGuard.Utils.Base.dll
FFI for AdGuard FLM
This crate is a set of bindings over filter-list-manager and build configurations for FFI bindings to interface with other programming languages.
There are currently two POSSIBLE ways to work with this library:
- Code generated by uniffi-rs
- C language interface using protocol buffers for serialisation (Preferred).
How to build
You may need regenerate protobuf files for rust and flm_native_interface.h
header:
cargo run -p ffi-native-assets-generator
.
It's better run this operation from the workspace root.
Apple platforms
If you need to generate protobuf *.swift files:
platform/apple/Scripts/generate_proto.sh
This code will build a package compatible macOS, iOS, simulator.
platform/apple/Scripts/configure.sh
platform/apple/Scripts/build.sh
Windows
See readme for uniffi-based build on GitHub or protobuf-based here
FFI-specific symbols
Look at these symbols for better understanding FFI interface.
Protobuf interface
Native interface source C Header source
Functions
Models
Errors
OuterError
- flattened enum from adguard_flm::FLMError
.
Source
Dependencies
~40–54MB
~1M SLoC