# What is the relationship between erizo,erizoAPI and erizoJS in the code?

**URL:** <https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073>\
**Category:** Support\
**Created:** [October 27, 2022, 8:38am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073 "2022-10-27T08:38:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnny](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/johnny/32/185_2.png) [@johnny](https://discourse.lynckia.com/u/johnny)\
**Post date:** [October 27, 2022, 8:38am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073/1 "2022-10-27T08:38:04Z")

</div>

Hello All,  
What is the relationship between erizo,erizoAPI and erizoJS in the code?

Thanks

---

<div class="post-metadata">

**Author:** ![pedro](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/pedro/32/24_2.png) [@pedro](https://discourse.lynckia.com/u/pedro)\
**Post date:** [October 27, 2022, 8:55am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073/2 "2022-10-27T08:55:53Z")

</div>

Erizo is the low-level C++ implementation of the SFU. It includes things like the ICE implementation and the connection pipelines.  
ErizoAPI is node.js wrapper for erizo exporting the needed functionality so it can be used in javascript.  
ErizoJS uses ErizoJS to implement the higher abstraction levels of the SFU. It implements the concept of publisher and subscribers and manages the negotiation among other things.

---

<div class="post-metadata">

**Author:** ![johnny](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/johnny/32/185_2.png) [@johnny](https://discourse.lynckia.com/u/johnny)\
**Post date:** [October 27, 2022, 9:14am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073/3 "2022-10-27T09:14:05Z")

</div>

Can I understand the licode event flow as shown below? @pedro  
client(nuveClient and erizoClient) → nuve → erizo\_controller → erizoAgent → ErizoJS → ErizoAPI → Erizo.

---

<div class="post-metadata">

**Author:** ![pedro](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/pedro/32/24_2.png) [@pedro](https://discourse.lynckia.com/u/pedro)\
**Post date:** [October 27, 2022, 9:40am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073/4 "2022-10-27T09:40:15Z")

</div>

More or less. Nuve is only involved for user authorization and room management.  
When a user successfully gets a token, it contains the url for the erizoController where that room is hosted. After that, the client no longer needs to communicate with nuve.  
All signalling and control messages will go through erizoController via websocket and all the A/V data will go through erizo via WebRTC.

---

<div class="post-metadata">

**Author:** ![johnny](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/johnny/32/185_2.png) [@johnny](https://discourse.lynckia.com/u/johnny)\
**Post date:** [October 27, 2022, 10:02am UTC](https://discourse.lynckia.com/t/what-is-the-relationship-between-erizo-erizoapi-and-erizojs-in-the-code/1073/5 "2022-10-27T10:02:53Z")

</div>

Thanks very much for you reply.
