Holochain Forum

Conductor Library Roadmap

Good evening, congrats on your recent acclaim. I am currently evaluating the holochain project for use as a persistence layer below a generalized structured information application.

I understand that you are currently doing a transition of sorts. I’ve watched the recent AMA and scanned through the forums and docs. I’m curious if you can comment on conductor libraries for the major OSes.

Where are they on the roadmap?
Have you done any proof of concept work?


1 Like

Bumping this up. Is there someone on the team that could speak to the question of conductor libraries?

Hi @realfritz … I’m peripheral to the core team… I used to work for Holo and still work as a professional Holochain developer, I can perhaps help.

Your comment about “OSes”… would you like to be able to run the main holochain binary holochain (which is sometimes / contexts called the Conductor) on different operating systems?
It is currently possible to run it on Windows, Linux, or Mac, but Windows ONLY with wsl2 which is essentially because its like Linux on Windows.

There is separately something we call the conductor library, which is a way of interfacing with, and controlling, the Holochain conductor while it’s running.
Three such ways to do this are

  • raw websocket requests via any library or language of your choice
  • from Javascript via the “holochain-conductor-api” (which should be renamed to indicate JS) https://github.com/holochain/holochain-conductor-api
  • from the command line via the hc dev tools binary hc sandbox call ...

Does that help? Further questions?

1 Like

Thanks for the response @Connoropolous. This helps to round out the picture.

Specifically though, I’m curious about conductor libraries for mobile devices (iOS, Android). This is a must-have for most applications and I’m having a hard time seeing how this is done with the current toolset or how this will be supported in the future.

Based on this support article, it does seem that the concept of a conductor on mobile has been conceived.


Interesting, I see. That’s actually something I’ve been quite interested in myself…

The pathway to IOS (not sure about Android, but possibly not much different) is, I believe, upgrading the wasm runtime (wasmer https://github.com/wasmerio/wasmer/) to version 1 at least, up from 0.7.1 or something that Holochain currently uses, in this sub package https://github.com/holochain/holochain-wasmer. The team has suggested that they may be able to get to this after they get the deepkey happ up and running.

There could possibly be ways to get it even sooner, based on what I just heard from @ddd-mtl that he got wasmer to build for an arm64 chip on a Raspberry Pi in the last couple of days, after it originally didn’t work and wouldn’t compile.

wasmer upgrade or configuration is the first hurdle, and beyond that there may not be many others, or there might be, I’m not totally sure past that.

You can see an issue I opened in November on the subject: https://github.com/wasmerio/wasmer/issues/1832

But I think v1 actually does compile now

Thanks @Connoropolous… Looks like there are a number of hurdles here. This helps answer my question of whether I would want to invest time on Holochain right now. I’ll check back in six months and see if the team has communicated a clear plan for mobile. I hope they do. As someone looking for a platform to build on, it would help much.

1 Like

Hey :slight_smile:

For mobile, I will be targeting holo for sure, as even if holochain can compile down to android/iOS, the conductor may violate the performance measures of that OS and kill (eg too much background noise when gossiping).

Kizuna is the happ that comes first to mind, they are targeting holo to deliver a mobile happ.

Hi! I’m trying to attempt calling a zome function from a C# (Unity) app, and from my understanding, what I want to be doing is using a websocket connection to the port that the conductor is running on, formatted with MessagePack(?), using this ZomeCall structure.

My question is if I’m wrong about any of those parts, and then if not, I’m looking for more information about how to properly construct that “ZomeCall”. I’ve got WebSockets and MessagePack set up in my test project, but I’m at a loss as to how to actually create the correct data to send over to the conductor. The documentation page linked to above has 404s for the specific types in that call (like CellId or ExternIO) so I’m not sure what I should be sending.

Any help would be appreciated!