Can I get a bonus for Community opportunity Idea?

As part of the main project, to proper test across multiple versions of IRIS, I implemented another project and wrote an article about it, with examples from typeorm-iris project

I know that only Python matters nowadays, but what about other languages officially supported by InterSystems?

I found significant bugs in the NodeJS driver, and it is not worth anything.

Javascript support for IRIS is quite limited, and it includes async/await. But you can wrap all IRIS related stuff to promises, and it will work, kind of. There is a lot of work needed to be done on the driver side, to make it powerful in JavaScript.

At the moment, I'm working on TypeORM support for IRIS, the package not published yet, should finish this week. But mostly working, there are some samples provided, all of them working.

Please have a look. I'm looking forward to any feedback, and open to any suggestions about which JS library would need to get IRIS support next

SSL Error for this driver does not really mean it's SSL ERROR, in most cases it could mean, that connection can't be established, from the first step. Check if port really available, you could try it by using some different tools, like DBeaver.

And unfortunately I can't recommend this driver you trying to use, it's unstable. May throw sigfault errors randomly and have other bugs. I would recommend using this driver instead, in most scenarios both are compatible, this one just more stable and predictible. And this driver used by lots of other Python projects, like SQLAlchemy, Django, irissqlcli, and more based on them.

Ages ago I've impleted project named BlocksExplorer, with a various of ways of using it

One of them is generating a picture of of the database, and visualization of defragmentation.

I think I tried it once on 2TB Database, but that was long time ago.

Anyway, this tool generates picture in BMP format, where each pixel represents each block in the database, so, for 

For 2TB database, it will be around 268435456 blocks, that will be a picture 16384x16384, and in BMP with a 3 bytes per pixel, it will be around 768MB for this picture, quite big one

This project is fully open, you can try to modify it a bit, and maybe if you do it per global, you will be able to make a map

USER>:py Python 3.12.3 (main, Feb  4 2025, 14:48:35) [GCC 13.3.0] on linux
Type quit() or Ctrl-D to exit this shell.
>>> import sys
>>> sys.path
['/usr/irissys/mgr/python', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/usr/local/lib/python3.12/dist-packages', '/usr/lib/python3/dist-packages', '/usr/irissys/mgr/python', '/usr/irissys/lib/python', '/usr/local/lib/python3.12/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.12/dist-packages']
>>>

did you try /usr/irissys/mgr/python, that's the path expected to be used by IRIS packages

pip install whatever --target /usr/irissys/mgr/python

and another place is /usr/irissys/lib/python, it's a place where InterSystems places Python Embedded support

sys.path, is a list of folders where python will look for the installed modules

Did you try using more appropriate package %Stream for it?

In your case, you would need to use %Stream.FileCharacter

 Set stream=##class(%Stream.FileCharacter).%New()
 $$$ThrowOnError(stream.LinkToFile("c:\export.csv"))
 set rs = ##class(%SQL.Statement).%ExecDirect(, "SELECT a, b FROM table")
 if rs.%SQLCODE'=0 {
     throw ##class(%Exception.SQL).CreateFromSQLCODE(rs.%SQLCODE, rs.%Message)
 }
 while rs.%Next() {
    set line = $listbuild(rs.a, rs.b)
    do f.WriteLine($listtostring(line, ","))
 }
 $$$ThrowOnError(stream.%Save())

Additionally, nowadays using embedded classes does not give much advantage, if it's not for one row result, only makes the code a bit harder to read