The online racing simulator
Clojure InSim client
(3 posts, started )
Clojure InSim client
Hi all,

I'm developing an InSim client in Clojure. At time of writing, it is just a library lets you create a very simple TCP client, parse packets received and return packets of binary data. Not all InSim packets are implemented.

My ultimate goal is to create a championship server with automatic ballast weight (BTCC style). This is out of scope for this library, but As i'm just taking this step by step i thought it'd be a good idea to share this library with you!

If you like Clojure and/or like to contribute please feel free to do so :-)

Any suggestions welcome!
I improved the client a bit and released v0.1.5-SNAPSHOT!
- It doesn't crash anymore when multiple packets are returned by LFS (e.g. when a IS_FIN packet is send)
- You can safely return a collection of packets.
- Added some throttling in the feedback loop to improve performance.
- Updated the main ns to be of better use.
- Created a better readme on github (

It works really nice and stable now. There are a lot of packets not yet parsed (properly), but it is a work in progress..

If you like Clojure, please try it out and let me know what you think! You can ofcourse report issues via github, would be nice to get some help.

Check out v0.2.0-SNAPSHOT !

Find it on GitHub & Clojars

What's new;
  • clj-insim automatically maintains the connection for you
  • clj-insim automatically registers connections and players for you
  • access registered connections with
    (clj-insim/get-connection 0)

  • access registered players with
    (clj-insim/get-player 1)

  • you can enqueue packets in multiple ways: by returning one or more packets from your dispatch function, or by calling
    (clj-insim/enqueue! lfs-client your-packet)

    from anywhere in your code..
  • Updated the readme to help you get started!
Any Clojure fanatics here? Please tell me what you think about clj-insim!

Clojure InSim client
(3 posts, started )