canvas
genny
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.
canvas
-
Canvas vector graphics update: rich text and path boolean operation support
I wanted to share a recent large update to https://github.com/tdewolff/canvas, which is a vector graphics library written in Go to create images, PDFs, SVGs, OpenGL, etc. using vector drawing operations. Especially I wanted to show two new exciting features:
-
Client-side scripting for in-browser graphics.
It appears that there's a port of Cairo to Go which also targets webassembly. https://github.com/tdewolff/canvas
- Pixie β A full-featured 2D graphics library for Nim
-
Processing equivalent in GoLang
https://github.com/tdewolff/canvas/blob/master/examples/opengl/main.go can draw primitves but i think it would be a bit hard to do event based animation
-
tdewolff/canvas: vector graphics in Go (mayor update)
Yes! See https://github.com/tdewolff/canvas/tree/master/examples/gonum-plot for an example using gonum-plot. You should be able to plug-and-play to use the canvas library!
- Cairo in Go: Vector to SVG, PDF, EPS, Raster, HTML Canvas, etc.
genny
-
Generate Python extensions using Nim language
Also of interest for people might be Genny. Itβs a Nim library to automate creating language bindings for other languages. Currently it supports Python, Node, and C.
https://github.com/treeform/genny
-
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.
- Genny β Generate Nim library bindings for many languages
-
Pixie β A full-featured 2D graphics library for Nim
For those using Python, we just got our Python bindings for Pixie up onto pip. Repo here https://github.com/treeform/pixie-python
It's extremely fresh but our tests are working so consider giving it a try.
For those interested in Nim's meta-programming, we're generating those Python bindings for Pixie from our Nim code using https://github.com/treeform/genny here https://github.com/treeform/pixie/blob/master/bindings/bindi...
- Transmission torrent client ported to C++
What are some alternatives?
svgo - Go Language Library for SVG generation
rnim - A bridge between R and Nim
gg - Go Graphics - 2D rendering in Go with a simple API.
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.
tiny-skia - A tiny Skia subset ported to Rust
ClangSharp - Clang bindings for .NET written in C#
generative-art-in-go - A companion source code repository to the book "Generative Art in Go"
nimjl - A bridge between Nim-lang and Julia !
go-cairo - Go binding for the cairo graphics library
c2rust - Migrate C code to Rust
bgracontrols - π BGRA Controls is a set of graphical UI elements that you can use with Lazarus LCL applications.
nimLUA - glue code generator to bind Nim and Lua together using Nim's powerful macro