# File encoding detection library

**URL:** <https://forum.elixirforum.com/t/file-encoding-detection-library/34972>\
**Category:** Questions\
**Tags:** csv\
**Created:** [October 16, 2020, 7:53am UTC](https://forum.elixirforum.com/t/file-encoding-detection-library/34972 "2020-10-16T07:53:30Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![harmon25](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/harmon25/32/1274_2.png) [@harmon25](https://forum.elixirforum.com/u/harmon25)\
**Post date:** [October 18, 2020, 3:40am UTC](https://forum.elixirforum.com/t/file-encoding-detection-library/34972/11 "2020-10-18T03:40:46Z")

</div>

I ended up using [ExMagic](https://github.com/liamwhite/exmagic) as it is just a Niff wrapper without any processes/gen\_server.

I am curious though, you mention this:

> The Server should be run under a pool which provides concurrency _and_ resiliency

Is that really necessary? I may not fully understand Niffs - does calling a niff function get serialized somehow? I figured if you were calling the niff from say multiple beam processes they would all just invoke the C code independently of each other, and not require being wrapped in a pool for concurrent access?

---

_[View the full topic](https://forum.elixirforum.com/t/file-encoding-detection-library/34972)._
