# Embedding multiple interpreters

**URL:** <https://discourse.julialang.org/t/embedding-multiple-interpreters/102571>\
**Category:** General Usage\
**Tags:** embedding\
**Created:** [August 7, 2023, 4:21pm UTC](https://discourse.julialang.org/t/embedding-multiple-interpreters/102571 "2023-08-07T16:21:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dlandahl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlandahl/32/52103_2.png) [@dlandahl](https://discourse.julialang.org/u/dlandahl)\
**Post date:** [August 7, 2023, 4:21pm UTC](https://discourse.julialang.org/t/embedding-multiple-interpreters/102571/1 "2023-08-07T16:21:27Z")

</div>

I would like to allow users to write Julia-based plugins for my software, which is written in a C-like language. I had a look at the [embedding manual](https://docs.julialang.org/en/v1/manual/embedding/) which seems really straightforward. However, I don’t know what the right approach would be if I wanted to support multiple execution contexts. If the user loads multiple plugins, written in Julia, which would each make and receive function calls to/from the C application, how would one allow the code of those plugins to not interfere with each other? Can you load/store the state of the interpreter to allow multiple independent Julia programs to be embedded in a C application? Or would you use separate OS processes, like how web browsers do it with Javascript?
