nimjl
Stan.jl
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.
Stan.jl
-
Stan in Nim?
However, from a quick look at the Julia bindings it seems like those are just wrapping cmdstan, i.e. accessing it via the official shell interface as an external process. That would be easy enough from Nim as well.
What are some alternatives?
genny - Generate a shared library and bindings for many languages.
nimskull - An in development statically typed systems programming language; with sustainability at its core. We, the community of users, maintain it.
nimporter - Compile Nim Extensions for Python On Import!
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.
futhark - Automatic wrapping of C headers in Nim
nimpy - Nim - Python bridge
NimProgrammingBook - Computer Programming with the Nim Programming Language -- A gentle Introduction
nimLUA - glue code generator to bind Nim and Lua together using Nim's powerful macro
cinterop - A C/C++ interop library for the Nim programming language
Arraymancer - A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
neo - A matrix library
nimhdf5 - Wrapper and some simple high-level bindings for the HDF5 library for the Nim language