# Racket and DrRacket communication

**URL:** <https://racket.discourse.group/t/racket-and-drracket-communication/851>\
**Category:** Questions & Answers\
**Tags:** question, drracket\
**Created:** [April 6, 2022, 6:50pm UTC](https://racket.discourse.group/t/racket-and-drracket-communication/851 "2022-04-06T18:50:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Junior](https://avatars.discourse-cdn.com/v4/letter/j/7ea924/32.png) [@Junior](https://racket.discourse.group/u/Junior)\
**Post date:** [April 6, 2022, 6:50pm UTC](https://racket.discourse.group/t/racket-and-drracket-communication/851/1 "2022-04-06T18:50:11Z")

</div>

Hello,  
I hope you are well !  
I have a question about DrRacket and Racket. I would like to know how the two communicate. Is it in the same process or separate processes? How does it work, is it synchronous like Tree-sitter or asynchronous like LSP? Are there requests sent by the IDE to the compiler so that the compiler returns information such as parenthesis errors for example? In short, I would like to understand a little how it works. I would like to have this information for educational reasons.  
Thanks very much !

---

<div class="post-metadata">

**Author:** ![dannypsnl](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/dannypsnl/32/917_2.png) [@dannypsnl](https://racket.discourse.group/u/dannypsnl)\
**Post date:** [April 6, 2022, 10:54pm UTC](https://racket.discourse.group/t/racket-and-drracket-communication/851/2 "2022-04-06T22:54:12Z")

</div>

[syncheck-annotations\<%\>](https://docs.racket-lang.org/drracket-tools/Accessing_Check_Syntax_Programmatically.html#%28def._%28%28lib._drracket%2Fcheck-syntax..rkt%29._syncheck-annotations~3c~25~3e%29%29) is how DrRacket collects information and errors I think, and [here](https://github.com/racket-tw/sauron/blob/develop/collect/collector.rkt#L77-L94) is an example for how to use it.

I'm not sure what's your synchronous here since I'm not familiar with Tree-sitter, but I think [racket-langserver](https://github.com/jeapostrophe/racket-langserver) uses compute on request, and [sauron](https://github.com/racket-tw/sauron) uses per file per thread to collect information. So I believe it didn't enforce how to use it, and I cannot conclude how DrRacket uses it here since I didn't dig into it XD.
