# conduit::Node conversion to conduit\_cpp::Node

**URL:** https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620
**Category:** In Situ Support
**Created:** [October 27, 2022, 4:40pm UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620 "2022-10-27T16:40:22Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Preslav](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/p/4bbf92/32.png) [@Preslav](https://discourse.paraview.org/u/Preslav)
#### Post date: [October 27, 2022, 4:40pm UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620/1 "2022-10-27T16:40:22Z")

</div>

Hello,

I am trying to integrate catalyst in-situ visualisation into a simulation software package. I am using conduit::Nodes to read and write hdf5 data and to do some rudimentary visualisation with Ascent.  
Currently, I use a recursive iteration from coduit::Node to manually rewrite all data to the conduit\_cpp::Node.

Is there a easier or faster way to convert a coduit::Node to a conduit\_cpp::Node?

Cheers!

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [October 28, 2022, 9:50pm UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620/2 "2022-10-28T21:50:34Z")

</div>

My understanding is that `conduit_cpp::Node` is a very thin wrapper over the C structure. What are you doing that makes it not just a simple wrapper?

---

<div class="post-metadata">

### Author: ![Preslav](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/p/4bbf92/32.png) [@Preslav](https://discourse.paraview.org/u/Preslav)
#### Post date: [November 3, 2022, 10:16am UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620/3 "2022-11-03T10:16:03Z")

</div>

The issue is that, conduit::Node is provided by the conduit library, whereas conduit\_cpp::Node is provided by catalyst. The two nodes are identical, but incompatible. Its not a matter of c++ vs c, rather catalyst has their own branch of conduit which is incompatible with the “standard” conduit.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [November 4, 2022, 4:25pm UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620/4 "2022-11-04T16:25:31Z")

</div>

Yes, Catalyst only knows how to talk about its embedded Conduit, not any arbitrary external Conduit. This was a decision made a while ago related to being able to provide ABI stability. We lose “interop with arbitrary Conduit” while gaining support for “you never need to rebuild for newer Catalyst library versions”.

---

<div class="post-metadata">

### Author: ![Christos\_Tsolakis](https://discourse.paraview.org/user_avatar/discourse.paraview.org/christos_tsolakis/32/4450_2.png) [@Christos\_Tsolakis](https://discourse.paraview.org/u/Christos_Tsolakis)
#### Post date: [August 9, 2023, 4:16pm UTC](https://discourse.paraview.org/t/conduit-node-conversion-to-conduit-cpp-node/10620/5 "2023-08-09T16:16:11Z")

</div>

> rather catalyst has their own branch of conduit which is incompatible with the “standard” conduit.

Catalyst as of [recently](https://gitlab.kitware.com/paraview/catalyst/-/merge_requests/82) supports compilation using an externally provided conduit. So you should be able to use your installation of conduit assuming it is recent enough (we use version 0.8.7)
