# Decomposing the DAML assistant for better Bazel integration

**URL:** <https://forum.canton.network/t/decomposing-the-daml-assistant-for-better-bazel-integration/2330>\
**Category:** App Development\
**Tags:** daml-sdk\
**Created:** [March 24, 2021, 12:58pm UTC](https://forum.canton.network/t/decomposing-the-daml-assistant-for-better-bazel-integration/2330 "2021-03-24T12:58:28Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alexander\_Bernauer](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/alexander_bernauer/32/1703_2.png) [@Alexander\_Bernauer](https://forum.canton.network/u/Alexander_Bernauer)\
**Post date:** [March 24, 2021, 12:58pm UTC](https://forum.canton.network/t/decomposing-the-daml-assistant-for-better-bazel-integration/2330/1 "2021-03-24T12:58:28Z")

</div>

Hi,

following up on [Managing package dependencies with Bazel - #6 by cocreature](https://discuss.daml.com/t/managing-package-dependencies-with-bazel/2044/6)

> maybe even go lower-level and construct them manually

can somebody please point me at anything that is out there that would help me directly invoke the tools underlying the DAML Assistant? I am expecting to be able to create faster and more robust Bazel builds when bypassing the DAML Assistant.

Regards,  
Alex

---

<div class="post-metadata">

**Author:** ![bernhard](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/bernhard/32/356_2.png) [@bernhard](https://forum.canton.network/u/bernhard)\
**Post date:** [March 25, 2021, 7:50am UTC](https://forum.canton.network/t/decomposing-the-daml-assistant-for-better-bazel-integration/2330/2 "2021-03-25T07:50:22Z")

</div>

I depends which tools you are trying to use. Some commands like `daml ledger` are part of the assistant. There is no way to circumvent it. The Daml compiler is a binary you can find in your install directory (eg `~/.daml/sdk/1.10.0/damlc/damlc`). All the JVM-based tools like Sandbox, JSON API, Navigator, etc are bundled into a single JAR file. You can start them with commands of the kind

```haskell
java -jar ~/.daml/sdk/1.10.0/daml-sdk/daml-sdk.jar sandbox

```

However, note that these are undocumented internal APIs. We don’t guarantee backward-compatibility for these. So for that kind of tooling, you are better off in my opinion to use stand-alone equivalents. Ie replace Sandbox with Daml for PostgreSQL and use the standalone JSON API JAR file from [GitHub releases](https://github.com/digital-asset/daml/releases).

---

<div class="post-metadata">

**Author:** ![Alexander\_Bernauer](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/alexander_bernauer/32/1703_2.png) [@Alexander\_Bernauer](https://forum.canton.network/u/Alexander_Bernauer)\
**Post date:** [March 25, 2021, 11:13am UTC](https://forum.canton.network/t/decomposing-the-daml-assistant-for-better-bazel-integration/2330/3 "2021-03-25T11:13:15Z")

</div>

Thanks, Bernhard.

It is actually not clear to me yet where I intend to take this. I am just looking into ways on how to make my BAZEL based build faster. For example, `daml test` seems to rebuild the `.dar` file, instead of using the one that a previous `daml build` has just produced. I suspect it is things like these that make the build slow. But I need to investigate further before I can say with more certainty.

Regards,  
Alex
