nimjl
flambeau
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nimjl
-
Deeplearning in Nim?
While indeed we are less people developing stuff in Nim compared to even the Julia community (which itself is of course much smaller than say Python), we do have cover a large amount of the typical needs in the scientific computing domain. And where we miss stuff it's a) easy to wrap C/C++ or b) simply call Julia, R or Python (As a personal reference I'm doing data analysis & numerical physics stuff in context of my PhD in physics and I literally do everything in Nim. The only significant C dependency {and only as a shared lib} I depend on is libhdf5 via nimhdf5).
-
Stan in Nim?
use nimjl to access the Julia bindings
-
Generate Python extensions using Nim language
To add to that, there's also a Nim <-> Julia bridge: https://github.com/clonkk/nimjl
- Computer Programming with Nim
-
Nim -- a modern "glue" language like Python
c2nim is a tool to translate ANSI C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand after the translation process. If you are tired of wrapping C library, you can try futhark which supports "simply import C header files directly into Nim". Similar to futhark, cinterop allows one to interop with C/C++ code without having to create wrappers. nimLUA is a glue code generator to bind Nim and Lua together using Nim's powerful macro. nimpy and nimporter is a bridge between Nim and Python. rnim is a bridge between R and Nim. nimjl is a bridge between Nim and Julia! Last but not least, genny generates a shared library and bindings for many languages such as Python, Node.js, C.
flambeau
-
Deeplearning in Nim?
In particular for deep learning as bobsyourunkl already mentioned there is arraymancer on the one hand and also flambeau on the other. The latter is a Nim wrapper around libtorch (i.e. the PyTorch C++ backend). It is missing things (to be wrapped by adding a few lines) and has some rough edges, but if one needs to get stuff done, it's possible.
-
Compile Python applications into stand-alone executables
That’s one thing I like about Nim. It can compile to C++ and so can directly wrap C++ code. While Nim’s ecosystem is small it’s easy enough to wrap most any C/C++ library. It’s great for OpenCV. Some folks have been updating direct PyTorch C++ api (1)!
1: https://github.com/SciNim/flambeau
What are some alternatives?
genny - Generate a shared library and bindings for many languages.
Nimfem - A tiny finite element library in Nim.
nimskull - An in development statically typed systems programming language; with sustainability at its core. We, the community of users, maintain it.
jellyfin-mpv-shim - MPV Cast Client for Jellyfin
nimporter - Compile Nim Extensions for Python On Import!
choosenim - Tool for easily installing and managing multiple versions of the Nim programming language.
futhark - Automatic wrapping of C headers in Nim
false-positive-malware-reporting - Trying to release your software sucks, mostly because of antivirus false positives. I don't have an answer, but I do have a list of links to help get your code whitelisted.
c2nim - c2nim is a tool to translate Ansi C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand before and after the translation process.
Nuitka - Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
nimpy - Nim - Python bridge
nimhdf5 - Wrapper and some simple high-level bindings for the HDF5 library for the Nim language