4 ms·
What are some noteworthy projects or libraries written in Nim?
by brodouevencode 3y ago
What are some noteworthy projects or libraries written in Nim?
- michaelsbradley 3y agoLots of high-quality Nim projects and libs are being worked on and used by the folks at Status: https://github.com/status-im/nimbus-eth2 https://github.com/status-im/nimbus-eth2 https://github.com/orgs/status-im/repositories?language=nim&q=&sort=&type=all https://github.com/orgs/status-im/repositories?language=nim&...
- sphars 3y agoNitter (Twitter frontend) is written in Nim: https://github.com/zedeus/nitter/ https://github.com/zedeus/nitter/
- summarity 3y agohttps://findsight.ai https://findsight.ai is my project, written in Nim I gave a talk about it here: https://www.youtube.com/watch?v=elNrRU12xRc https://www.youtube.com/watch?v=elNrRU12xRc including some more intense use of Nim (for inline PEG grammars and data-parallel processing with Weave)
- sergiotapia 3y agoCheck out my project Torrentinim for a popular but simple enough project if you want to taste what Nim is like. https://github.com/sergiotapia/torrentinim https://github.com/sergiotapia/torrentinim It's easy to understand code.
- hugs 3y agoI don't know if my particular version is noteworthy, but I recently started making updated Nim bindings for OpenCV and it was kinda fun. I don't consider myself an advanced C++ programmer, but Nim made the process easier than I had feared it would be. https://github.com/tapsterbot/mvb-opencv https://github.com/tapsterbot/mvb-opencv
- pzo 3y agoNot familiar with Nim enough to figure it out - are the bindings auto generated in similar style like opencv bindings to any other supported language (python, julia, objc, rust, etc)?
- hugs 3y agoThey are currently not auto-generated. (I only implemented the absolute minimum to get started calling the most commonly used OpenCV methods from Nim.) Hopefully the bindings will be auto-generated be in the future, though!
- treeform 3y agoWe have written pixie: https://github.com/treeform/pixie https://github.com/treeform/pixie . Pixie is a 2D graphics library similar to Cairo and Skia written entirely in Nim. Which I think is a big accomplishment. It even has python bindings: https://pypi.org/project/pixie-python/ https://pypi.org/project/pixie-python/
- FireInsight 3y agoIs pixie capable of realtime usage like in games or generative art? Last time I looked it seemed CPU-only.
- ElegantBeef 3y agoI use pixie for my game framework. It's used to load textures, layout fonts, and render font atlases. It can be used for generative art but https://github.com/EriKWDev/nanim https://github.com/EriKWDev/nanim or sdl2 using renderer's makes more sense as they are gpu accelerated.
- treeform 3y agoNot by itself! But together with other library boxy you can: https://github.com/treeform/boxy https://github.com/treeform/boxy You should use pixie to load textures, create text, rasterize vector graphic etc... and send them to boxy to be drawn every frame. Yes Pixie is CPU only, and just like you can't use Cairo or Skea for real time games you can't use Pixie, but boxy you totally can.
- shiomiru 3y agoNot sure if it counts as noteworthy, but I'm submitting this comment via my TUI web browser that I've been writing in Nim. https://git.sr.ht/~bptato/chawan https://git.sr.ht/~bptato/chawan Also, there exists another Nim web browser project; from what I can tell, it's in somewhat earlier stages of development. https://github.com/xTrayambak/ferus https://github.com/xTrayambak/ferus
- j-james 3y agoOnes that have not been mentioned so far: - npeg lets you write PEGs inline in almost normal notation: https://github.com/zevv/npeg https://github.com/zevv/npeg - owlkettle is a declarative macro-oriented library for GTK: https://github.com/can-lehmann/owlkettle https://github.com/can-lehmann/owlkettle - ratel is a framework for embedded programming: https://github.com/PMunch/ratel https://github.com/PMunch/ratel - futhark provides for much more automatic C interop: https://github.com/PMunch/futhark https://github.com/PMunch/futhark - nimpy allows calling Python code from Nim and vice versa: https://github.com/yglukhov/nimpy https://github.com/yglukhov/nimpy - questionable provides a lot of syntax sugar surrounding Option/Result types: https://github.com/codex-storage/questionable https://github.com/codex-storage/questionable - nlvm is an unofficial LLVM backend: https://github.com/arnetheduck/nlvm https://github.com/arnetheduck/nlvm - chronos is an alternative async/await backend: https://github.com/status-im/nim-chronos https://github.com/status-im/nim-chronos - cps allows arbitrary procedure rewriting in continuation passing style: https://github.com/nim-works/cps https://github.com/nim-works/cps A longer list can be found at https://github.com/ringabout/awesome-nim https://github.com/ringabout/awesome-nim.