antares-sql / antares Goto Github PK
View Code? Open in Web Editor NEWA modern, fast and productivity driven SQL client with a focus in UX
Home Page: https://antares-sql.app
License: MIT License
A modern, fast and productivity driven SQL client with a focus in UX
Home Page: https://antares-sql.app
License: MIT License
Describe the bug
When using SSH Tunnel the GUI does not allow (there is not a field) to type the passphrase for private key. Therefore, this issue renders the SSH Tunnel unusable in most cases.
To Reproduce
Steps to reproduce the behavior:
1.) Create a new DB connection
2.) Go to SSH Tunnel tab
3.) Select a private key
4.) Now you are unable to type in the passphrase for private key.
Expected behavior
A field for typing in the passphrase should be available for the user to type in the passphrase of the provided private key.
Screenshots
Application (please complete the following information):
Desktop (please complete the following information):
Describe the bug
When creating a new connection, zeroconf name is not recognized even the host supports it.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Zeroconf names should be recongnized if the host has support.
Screenshots
Desktop (please complete the following information):
I'm getting this error with Mysql 8:
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Describe the bug
Program failes on startup.
To Reproduce
Steps to reproduce the behavior:
Have electron14 as default elecron (on an arch-linux-favoured system).
Expected behavior
Program should start even with electron14 as default.
Screenshots
Better:
App threw an error during load
Error: @electron/remote >= 2.x is required for Electron >= 14. See https://github.com/electron/remote/blob/main/docs/migration-2.md for migration instructions.
at Object.initialize (/usr/lib/antares-sql.asar/webpack:/node_modules/@electron/remote/dist/src/main/server.js:342:15)
at Module.call (/usr/lib/antares-sql.asar/webpack:/src/main/index.js:75:37)
at __webpack_require__ (/usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:19:22)
at Object.call (/usr/lib/antares-sql.asar/main.js:1:196882)
at __webpack_require__ (/usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:19:22)
at /usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:83:10
at Object.<anonymous> (/usr/lib/antares-sql.asar/main.js:1:1329)
at Module._compile (internal/modules/cjs/loader.js:1083:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1113:10)
at Module.load (internal/modules/cjs/loader.js:940:32)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: @electron/remote >= 2.x is required for Electron >= 14. See https://github.com/electron/remote/blob/main/docs/migration-2.md for migration instructions.
at Object.initialize (/usr/lib/antares-sql.asar/webpack:/node_modules/@electron/remote/dist/src/main/server.js:342:15)
at Module.call (/usr/lib/antares-sql.asar/webpack:/src/main/index.js:75:37)
at __webpack_require__ (/usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:19:22)
at Object.call (/usr/lib/antares-sql.asar/main.js:1:196882)
at __webpack_require__ (/usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:19:22)
at /usr/lib/antares-sql.asar/webpack:/webpack/bootstrap:83:10
at Object.<anonymous> (/usr/lib/antares-sql.asar/main.js:1:1329)
at Module._compile (internal/modules/cjs/loader.js:1083:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1113:10)
at Module.load (internal/modules/cjs/loader.js:940:32)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[27299:0922/090554.305855:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
Application (please complete the following information):
The app does not start on my windows machine, an error is shown in the console
Uncaught SyntaxError: Unexpected token � in JSON at position 0
at JSON.parse (<anonymous>)
at ElectronStore.Conf._deserialize (C:\Users\username\AppData\Local\Programs\antares\resources\app.asar\node_modules\conf\dist\source\index.js:69)
at ElectronStore.get store [as store] (C:\Users\username\AppData\Local\Programs\antares\resources\app.asar\node_modules\conf\dist\source\index.js:278)
at new Conf (C:\Users\username\AppData\Local\Programs\antares\resources\app.asar\node_modules\conf\dist\source\index.js:132)
at new ElectronStore (C:\Users\username\AppData\Local\Programs\antares\resources\app.asar\node_modules\electron-store\index.js:69)
at Module.call (webpack:/src/renderer/store/modules/connections.store.js:11)
at __webpack_require__ (webpack:/webpack/bootstrap:68)
at Object.call (renderer.js:2)
at __webpack_require__ (webpack:/webpack/bootstrap:68)
at webpack:/webpack/bootstrap:244
Describe the bug
I can't create a new table. Return error.
To Reproduce
When you try to create a new table, server return this error:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') COMMENT='', COLLATE='utf8mb4_0900_ai_ci', ENGINE=InnoDB' at line 1
In this hours I'm noticing some problems with Antares from Microsoft Store.
If you facing some issues please try to uninstall and reinstall, this should solve any problem. You won't lose your settings and connections.
Is your feature request related to a problem? Please describe.
It would be great to be able to filter the data based on columns. Something like a graphical version of WHERE column = "my_value"
would be awesome to have. Other SQL graphical clients have this feature.
Describe the solution you'd like
Any solution which would enable the user to filter by column values directly in the GUI without manually performing an SQL query would be acceptable.
Describe alternatives you've considered
None.
Additional context
I'm referring to this kind of functionality available, for example, in Beekeeper Studio SQL client.
It would be nice to have the option to set as read-only on each database.
Steps to reproduce:
CREATE TABLE `test_table` (
`field_1` varchar(200) NOT NULL,
`field_2` varchar(15) NOT NULL,
`field_3` varchar(15) NOT NULL,
`field_4` varchar(15) NOT NULL,
UNIQUE KEY `TEST_UC` (`field_1`, `field_2`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8
If i try to access table settings or data, i get TypeError: Cannot read property 'replace' of undefined
I am using version 0.1.8
Hi,
I have installed antares on my Xubuntu 20.04 system with snap.
Since the update to v0.3.0 I get this error when I try to start the application
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'ssh2-promise'
Require stack:
- /snap/antares/211/opt/Antares/resources/app.asar/main.js
-
at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
at Function.n._resolveFilename (electron/js2c/browser_init.js:261:1128)
at Module._load (internal/modules/cjs/loader.js:732:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12684)
at Module.require (internal/modules/cjs/loader.js:959:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.call (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/external "ssh2-promise":1:18)
at __webpack_require__ (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/webpack/bootstrap:19:22)
at Module.call (/snap/antares/211/opt/Antares/resources/app.asar/main.js:1:460469)
at __webpack_require__ (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/webpack/bootstrap:19:22)
It has worked fine last week before the update.
There are also some other warnings printed but they are probably not relevant.
Here is the full output anyway:
$ antares
/snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-client.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-client.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-server.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-client.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-server.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-client.so.0)
/snap/antares/211/opt/Antares/antares: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-server.so.0)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'ssh2-promise'
Require stack:
- /snap/antares/211/opt/Antares/resources/app.asar/main.js
-
at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
at Function.n._resolveFilename (electron/js2c/browser_init.js:261:1128)
at Module._load (internal/modules/cjs/loader.js:732:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12684)
at Module.require (internal/modules/cjs/loader.js:959:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.call (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/external "ssh2-promise":1:18)
at __webpack_require__ (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/webpack/bootstrap:19:22)
at Module.call (/snap/antares/211/opt/Antares/resources/app.asar/main.js:1:460469)
at __webpack_require__ (/snap/antares/211/opt/Antares/resources/app.asar/webpack:/webpack/bootstrap:19:22)
/proc/self/exe: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-client.so.0)
/proc/self/exe: /snap/antares/211/gnome-platform/usr/lib/x86_64-linux-gnu/libffi.so.7: no version information available (required by /snap/antares/211/usr/lib/x86_64-linux-gnu/libwayland-server.so.0)
Hi there, I just found that the blank window appear at first run
Describe the bug
empty window appear at first run
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect that the window is appear smoothly
Application (please complete the following information):
Desktop (please complete the following information):
Describe the bug
When using Postgresql 13 (other versions may be affected too), the delete row action is failing on PrimaryKeys with a string value.
This is because in the delete-table-rows
handler, the DELETE statement is using double quotes to surround the provided ID.
Double quotes are used to describe instances like tableRows and index names etc.
See: https://github.com/Fabio286/antares/blob/60e5556a3e80bfd57fc4f2f23f2bcf26b4fd8dc7/src/main/ipc-handlers/tables.js#L191
The solution would be to use single quotes for IDs like:
// delete-table-rows handler snippet starting line 190:
return typeof row[fieldName] === 'string'
? `'${row[fieldName]}'`
: row[fieldName];
}).join(',');
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It is expected that the row is being deleted.
Desktop (please complete the following information):
Additional context
Database Used: PostgreSQL 13.4 on Debian8.3.0-6 (Docker Image)
Please add support for the Oracle database.
Clicking "Create new index" more than once will add duplicate icons for that field. Then, when deleting this field, it is not actually deleted and still exists in the background. Not sure whether this false delete is related to how it has been assigned duplicated index types.
Steps to reproduce the behavior:
Expected behavior
The field should only be allowed to be given an index type once, i.e. the icon should not be duplicated. Further, when deleting the field, it should not still exist in the background - this false delete may be related to the duplicated icons.
Application (please complete the following information):
Desktop (please complete the following information):
Describe the bug
When the version 0.4.0 was downloaded from the application, right after the installation Windows Defender popped up saying that it found a Trojan in the uninstall.exe of Antares.
To Reproduce
Install the 0.4.0 version from the application
Application:
Desktop
Originally posted by elution91 January 16, 2022
Hi,
Beginner here so bare with me please. But, recently installed the latest mac version and quickly ran a dll command to set up some tables. However, querying any table results in "error: relation "members" does not exist" I for an example try the members table.
It is not possible to change the font size in the sql query input field. At the moment (especially with a dark theme) it is difficult to work.
Add the ability to change the font size for a field with sql queries.
When a field of a record is modified and confirmed in DATA tab, the value should be written to DB server using SQL.
When a "datetime" type field (with existing data) exists, Antares fails because of SQL syntax error.
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Jul 28 2020 08:43:49 GMT+0900 (日本標準時) AND update_date = Tue Jul 28 ...' at line 1
A datetime field must be specified using ISO ("YYYY-mm-dd hh:mm:ss"), but it seems Javascript format is used instead.
In modal CREATE NEW SCHEMA
I type the schema name and then press enter, it reload the page without saving the newly created schema
[Báo cáo thống kê bãi xe TTTM GOLDCOAST.xlsx]
Can't seem to connect to my local MariaDB install. Running Linux and latest version. Gives an error Error: Cannot load from mysql.proc. The table is probably corrupted
.
mariadb --version
mariadb Ver 15.1 Distrib 10.5.13-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Describe the bug
When TEXT is input in EDIT dialog and has some specific patterns, "Update" causes Syntax error.
To Reproduce
Expected behavior
The content is successfully updated.
Screenshots
Desktop (please complete the following information):
Additional context
String "{ 1 }" has no problem.
When a table has a foreign key to another table, double-clicking the field triggers a popup menu if the filed has a valid key.
When the value is NULL, Antares shows a tick marks on the right side of the field, but no menu is shown. As a result, the filed cannot be edited via GUI.
Setting some value to the field by Query, it becomes editable.
My platform : Ubuntu 20.10/amd64
Describe the bug
I have an instance of MariaDB Server running under docker on my PC, with previously PHPMyAdmin to connect to it and administer it, I would now like to use only Antares SQL.
I configured my mysql client to use TCP protocol (in my.cnf file) but I can't connect
To Reproduce
docker run -p 127.0.0.1:3306:3306 --name mariadb-server -e MARIADB_ROOT_PASSWORD=ro -d mariadb:latest
# File: /etc/mysql/my.cnf
[client]
protocol=tcp
mysql -u root -proot
4-2. Try connection on Antares but with container IP directly
Expected behavior
Connection successful !
Application (please complete the following information):
Desktop (please complete the following information):
I'm actually coming here to inform you that the tool is really well done, congratulations to all.
But at the moment I won't keep it with me because I need advanced export, because here in Brazil the export pattern is ( ; ) and I need to copy the data directly from the table and pass it on to other tables or excel.
But I look forward to returning here in the near future.
translation by Google Translate
Describe the bug
TypeError: Cannot read properties of undefined (reading 'type')
at eval (webpack-internal:///./src/main/libs/clients/MySQLClient.js:432:66)
at Array.map ()
at MySQLClient.getTableColumns (webpack-internal:///./src/main/libs/clients/MySQLClient.js:418:17)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async eval (webpack-internal:///./src/main/libs/clients/MySQLClient.js:1620:36)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Application (please complete the following information):
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
When adding a new connection and switching between database types, the TCP port is always set to 3306, also when chosing PostgreSQL, which should be 5432 by default.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Port should be set to 5432 for PostgreSQL.
Application (please complete the following information):
Is your feature request related to a problem? Please describe.
Connect single database via proxy
Describe the solution you'd like
Add proxy config in Add connection
Describe the bug
TEXT containing linefeed "\n" cannot be committed, showing an error ( SQL syntax error ).
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Edited data is correctly committed without modification.
Screenshots
Application (please complete the following information):
Desktop (please complete the following information):
Additional context
It also happens with macOS.
Often when I develop in my editor or clicking around in my app, it makes changes to the database. One feature that I really like is Autorefresh of the table.
Usecase:
This feature is in both dbBeaver and HeidiSql.
I really love how Antares is structured and would love to see this feature here.
I will get back with more screenshots and gif examples.
[Update]
Example of HeidiSql's autorefresh. Here it is automatically updating the table every 3 seconds.
HeidiSql is the top window, and bottom window simulated whatever app that makes a change to the database.
After the database change occur, you can see it when HeidiSql/Antares autorefresh.
Describe the bug
A query containing a join with a query on one side return 'table does not exist'
The same query works in other SQL clients as well as embedded in Java
To Reproduce
Execute a query with a join where one side is a query, similar to this one:
SELECT jb.*, ja.ToCustomerID
FROM aajobdetails jb
LEFT JOIN (
SELECT * FROM aajoballocation
WHERE ID IN (
SELECT (CASE WHEN ToCustomerID = ? THEN MIN(ID) ELSE MAX(ID) END) AS ID
FROM aajoballocation
WHERE ((FromCustomerID = ?) OR (SubcontractorID = ?) OR (ToCustomerID = ?))
AND Allocated != 'C'
GROUP BY JobID
)
ORDER BY JobID Desc
) ja ON jb.ID = ja.JobID
WHERE jb.ID>0
AND jb.UJID = ?
Expected behavior
The results of the query are returned.
dbeaver-ce returns one line of data, which is correct
Application (please complete the following information):
Desktop (please complete the following information):
Linux HP-Laptop-Ubuntu 5.13.0-35-generic #40~20.04.1-Ubuntu SMP Mon Mar 7 09:18:32 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Additional context
This is not urgent as I have another tool I can use, but I like Antares so I'm reporting it :)
Hi, someone can put a feature to enable/disable blur effect in antares-sql?
This is terrible for some old graphic cards like mine. When any confirmation boxes appears, the antares hangs the whole interface.
Thanks for help!
Describe the bug
Using postgresql database, you get message 'error: relation "dbo.tablename" does not exist' if table name contain uppercase characters.
To Reproduce
Uses a postgresql database with tables that have uppercase characters in the name
Application (please complete the following information):
Hi everyone,
I would like to provide a distribution for Apple Silicon but unfortunately I do not have the necessary hardware to test.
electron-builder
should be able to provide distributions for MacOS ARM, so I tried to target arm64 as well but the dmg that is generated via GitHub Actions seems to be damaged according to the feedback received.
Any help with this task is welcome!
Describe the bug
After downlaoding the latest update the "Restart Antares to install" Button does nothing to the application.
Restarting the app also does not solve the problem or update the app automatically.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect to click the restart-app button and the app is restarting and installing the latest update.
Application:
Desktop:
Describe the bug
When the ID (or maybe any column) is a BigInt, it shows a wrong value
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Show the right value (See the screenshots)
Application
Desktop
The workflow build-win.yml is referencing action actions/checkout using references v1. However this reference is missing the commit a6747255bd19d7a757dbdda8c654a9f84db19839 which may contain fix to the some vulnerability.
The vulnerability fix that is missing by actions version could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider to update the reference to the action.
Is your feature request related to a problem? Please describe.
This issue is not related to a problem, it's just a feature request.
Describe the solution you'd like
I can see a potential possibility for antares-sql
to run from the browser, the same way adminer
is used currently. A concrete example would be something like the following (copied from the MariaDB
official docker page)
# Use root/example as user/password credentials
version: '3.1'
services:
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
antares:
image: fabio286/antares
restart: always
ports:
- 8080:8080
Antares
would then be available by accessing localhost:8080
in a browser.
Describe alternatives you've considered
We can always run the AppImage in a standard Linux docker container, forwarding the display to the host system, but that would be far more bothersome to configure in most cases.
Additional context
No additional context.
Hello!
It would be good that when you change between tabs, and select tab with "Query", the textarea do autofocus to let you start typing instead of do click in input to make this do focus
Describe the bug
Hey again. Update 0.4.4 brought a bug to the sorting of a numeric column. The following example shows how it is sorted at the moment:
99
94
920
915
84
833
82
To Reproduce
Sort any numeric column
Expected behavior
Instead of previous example:
920
915
833
99
94
84
82
Application:
Version: 0.4.4
Distribution: app installed via "Software center"
Desktop:
OS: Linux KDE neon
Version: KDE Plasma 5.23.1
Additional context
As previously mentioned, I love your work and I am happy to see new features and progress :)
Describe the bug
In DATA editing, text data with '%' string is escaped and the escape characters are written to the field.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Entered text data is written without escape.
Screenshots
Desktop (please complete the following information):
Additional context
Describe the bug
Views cannot be queried, showing no data.
For example, a simple view based on t, "select * from t" does not show any data in DATA tab, saying "unknown table t in information_schema" or showing busy cursor.
To Reproduce
Expected behavior
A View works like a table.
Screenshots
None
Application (please complete the following information):
Desktop (please complete the following information):
Additional context
This problem is OS irrelevant.
Is your feature request related to a problem? Please describe.
We are working to use teleport to connect to our remote databases. This service uses certificate based proxying to connect to databases. The output of this tool is a connection string (in our case a postgres connection string). Its a real pain to take the connection string and separate out the bits to put it in each dialog box. Especially since credentials are short lived.
Describe the solution you'd like
The ability to optionally paste a connection string that is parsed and auto inserted into the appropriate input boxes maybe as a starting point after which the input boxes can be further modified.
Describe alternatives you've considered
Manually entering credentials each time :(
Is your feature request related to a problem? Please describe.
DATA tab shows only 1000 rows from top.
To see the rows above 1000, I have to write a query like "SELECT * from T limit 1000,200" manually.
Describe the solution you'd like
Add an "offset" field, whose value can be edited directly and incremented/decremented by "next"/"[rev" buttons.
Describe alternatives you've considered
"offset" field , whose value does not change by "refresh" button.
Additional context
Describe the bug
When creating new connection, opening "Client" drop-down box hangs the application for about 20s.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Open the client type selection drop-down imminently.
Application (please complete the following information):
Desktop:
The bug
Selecting all rows which could not be deleted when deletion resulted in an error before
To Reproduce
Expected behavior
Select only clicked rows
Screenshots
Selecting a good row:
Selecting one of the rows which failed:
Application:
Desktop:
Additional notes
If you selected all rows and one of them fails, you can't select only one again, because all get selected.
Keep working on Antares, really appreciate it ;)
Unable to add or edit ENUM field.
Also want the MySQL Query view.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.