@@ -4,117 +4,4 @@ The bitdrift Capture SDK is a highly optimized, lightweight library built to ena
44
55See [ here] ( https://docs.bitdrift.io/product/overview ) for more information.
66
7- ## Building Requirements
8-
9- ### Dependencies
10-
11- #### Rust
12-
13- Install it locally using [ their installation script] ( https://www.rust-lang.org/tools/install )
14-
15- ` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh `
16-
17- make sure to add it to your path, e.g.
18-
19- ` echo 'export PATH="~/.cargo/bin:$PATH"' >> ~/.zshrc `
20-
21- #### Other
22-
23- Install other required dependencies using following commands:
24-
25- ``` bash
26- brew install protobuf flatbuffers llvm
27- ```
28-
29- Make sure that ` llvm-objcopy ` is in your ` PATH ` .
30-
31- ## Development
32-
33- The Capture SDK is built using [ bazel] ( https://github.com/bazelbuild/bazel ) . The ` ./bazelw ` ensures that the correct bazel version is used and the
34- correct Android dependencies are installed.
35-
36- ### Capture SDK Example Apps
37-
38- The easiest way to test the library is by running the example apps on each platform (iOS / Android).
39-
40- See [ examples/README.md] ( /examples/README.md ) for more details on how to setup your environment.
41-
42- #### iOS
43-
44- To run the iOS example app:
45-
46- ``` bash
47- ./bazelw run --ios_multi_cpus=x86_64 :ios_app
48- ```
49-
50- For more details on how to setup and run the example app using Xcode refer to [ examples/README.md] ( /examples/README.md ) .
51-
52- #### Android
53-
54- We have two example apps on Android, one built with bazel and one built wih gradle so both build frameworks can be tested.
55-
56- For more details on how to setup and run the example apps using Android Studio refer to [ examples/README.md] ( /examples/README.md ) .
57-
58- ### Tests
59-
60- To run all tests:
61-
62- ``` bash
63- ./bazelw test //... --build_tests_only
64- ```
65-
66- ### Benchmarking
67-
68- When making changes to the Rust logging path, the benchmarks in //test/benchmark: logger_benchmark
69- can be used to evaluate the impact of the change. To run, invoke
70-
71- ``` bash
72- ./bazelw build --config benchmark //test/benchmark:logger_benchmark
73- bazel-bin/test/benchmark/logger_benchmark --bench
74- ```
75-
76- Perform this for both the old and new change (in that order), then look at the relevant charts in
77- target/criterion/* /report for the different benchmark functions (the output from the benchmark
78- binary should indicate which ones are interesting).
79-
80- ### Dependency Management
81- We use crate_universe to manage our third party Rust dependencies. This tool inspects the dependencies
82- listed in Cargo.toml and uses it to generate a number of BUILD files that allow the Capture SDK code
83- to depend on these third party targets.
84-
85- To depend on an imported library, depend on ` @crate_index//:<name> ` . For example, to depend on
86- tokio depend on ` @crate_index//:tokio ` .
87-
88- ### Rust Editor Support
89-
90- To provide a IDE-like experience we make use of https://github.com/rust-lang/rust-analyzer and
91- editors with rust-analyzer support (e.g. VS Code with the ` rust-analyzer ` extension).
92-
93- We rely on rust-analyzer's Cargo integration to provide IDE-like capabilities. One thing to note
94- is that we don't build the project, which means its possible for the Cargo configuration to diverge.
95- This will most likely be due to reference between crates within the project not being specified in the
96- relevant Cargo.toml files.
97-
98- ### Formatters
99-
100- ``` bash
101- make format
102- ```
103-
104- Individual formatters can be run via specific make targets, see the
105- top-level Makefile.
106-
107- Note that clippy checks are disabled by default in development due to
108- https://github.com/bazelbuild/rules_rust/issues/1372 . To enable in dev, add ` --config clippy ` to your
109- bazel commands.
110-
111- ### Binary Size Comparison
112-
113- As keeping the binary size down, it's sometimes helpful to check if a change increases the binary
114- size substantially. To get an estimate, run ` ./tools/capture_so_size.sh ` which will compute the size of a
115- stripped .so compiled for Android.
116-
117- ### Building SDK Binaries
118-
119- Run ` ./tools/ios_release.sh ` and ` ./tools/android_release.sh ` to build iOS and Android release artifacts
120- respectively.
7+ For setup, please refer to the [ wiki] (https://github.com/bitdriftlabs/capture-sdk/wiki )
0 commit comments