# Dart Tooling Daemon The server implementation for the Dart Tooling Daemon. This is meant to be run by our internal tooling and facilitates communication between our internal tools. For details on the protocol used to communicate with the Dart Tooling Daemon see [The DTD Protocol](./dtd_protocol.md) ## Running the Dart Tooling Daemon ### Compiled version To run the tooling daemon compiled with the Dart SDK: 1. [Build the Dart SDK](https://github.com/dart-lang/sdk/wiki/Building) - make sure to build with `create_platform_sdk` - e.g. `./tools/build.py create_platform_sdk` 2. run `dart tooling-daemon` > :info The dart binary should be the one you just built in step 1. ### Testing changes locally To quickly test changes to the tooling daemon, start it by running: ```bash dart run bin/dtd.dart ``` ## Running tests To run the tests under the `test/` directory, run `dart test test/`. However, if you are testing changes that span `pkg/dtd` and `pkg/dtd_impl`, you'll need to build the Dart SDK, and then use the built Dart executable to run the test. 1. Build the Dart SDK: `./tools/build.py create_platform_sdk` 2. Run the test: `xcodebuild/ReleaseARM64/dart-sdk/bin/dart test test/`