I've tried multiple approaches, non of them sound good.
- Using C NIFs. You don't want to crash beam because a memory issue or something like that
- Using Rust NIFs. This sounded promising when I started but after few implements got stuck in handling lifetime of libgit objects and nif reference
- At last I tried implementing in pure Elixir but that also looks like a waste of time. Looking into git internal objects from Elixir looks interesting but it’s hard to keep up with the changes