Giter Site home page Giter Site logo

gyk001 / viabtc_exchange_server_docker Goto Github PK

View Code? Open in Web Editor NEW
91.0 12.0 104.0 683 KB

easy run viabtc_exchange_server use docker compose

Shell 75.24% Dockerfile 24.76%
docker-compose docker btc btcmarkets btc-price bitcoin bitcoin-wallet bitcoin-price bitcoin-transaction

viabtc_exchange_server_docker's Introduction

Easy startup viabtc_exchange_server with docker

中文

This is docker config to startup viabtc_exchange_server simply.

This repo do this things automatic:

  • Startup a ubuntu docker container
  • Prepare requirements environment
  • Build viabtc_exchange_server from sourcecode
  • Set up requirement service( redis kafka mysql...)
  • Startup viabtc_exchange_server service

Screenshots

screenshots

Prepare

Startup

Open a terminal(linux/mac) or cmd(windows)

git clone [email protected]:gyk001/viabtc_exchange_server_docker.git
cd viabtc_exchange_server_docker
docker-compose up

Just wait it startup and then test use curl

curl  http://127.0.0.1:18080/ -d '{"method": "market.list", "params": [], "id": 1516681174}'

All is done, just play it!

Tips: if you don't install git, you can startup it like this

Donation

If you find this help, please donate~ Thx.
若本项目对您有帮助,求打赏~ 谢谢您的鼓励。
Use App Alipay / WeChat to scan QRCode~ Thx for your support.
用手机 支付宝钱包 / 微信, 扫一扫即可~ 谢谢您的鼓励。

Links

viabtc_exchange_server_docker's People

Contributors

gyk001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

viabtc_exchange_server_docker's Issues

build some issue

mv: cannot stat '/src/viabtc/marketprice/marketprice.exe': No such file or directory ERROR: Service 'btc' failed to build: The command '/bin/sh -c mkdir -p /var/log/trade && mv /src/viabtc/matchengine/matchengine.exe /btc/matchengine/ && mv /src/viabtc/accesshttp/accesshttp.exe /btc/accesshttp/ && mv /src/viabtc/marketprice/marketprice.exe /btc/marketprice/ && mv /src/viabtc/accessws/accessws.exe /btc/accessws/ && mv /src/viabtc/alertcenter/alertcenter.exe /btc/alertcenter/ && mv /src/viabtc/readhistory/readhistory.exe /btc/readhistory/ && chmod +x /btc/*.sh && chmod +x /btc/*/*.exe' returned a non-zero code: 1

Segmentation Fault with mysqlclient

I add this issue here, because, though it looks like a dependancy problem, others may struggle with this, once we find a work around ill update this issue, if any one else has insight, feel free to recoment.
Situation: Using Ubuntu 18
Status: Uodate packages and libraries on 15th Novemeber
Result: Match engine fails to run. (Compile ok)
Evidence:
[2019-11-26 11:42:56.735344] [840] [fatal]ut_misc.c:83(process_keepalive): process: 3171, name: matchengine terminated by signal: 'Segmentation fault'
[2019-11-26 11:42:57.737984] [3173] [fatal]ut_signal.c:90(signal_handler): [3173]signal: 11 (SIGSEGV) received, core dumping
==========backtrace=start==========
0 /var/exchdb/exchange/app/matchengine() [0x46d910]
1 /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7fdb07835890]
2 /lib/x86_64-linux-gnu/libc.so.6(+0xa9e8a) [0x7fdb06f39e8a]
3 /var/exchdb/exchange/app/matchengine() [0x5d4639]
4 /var/exchdb/exchange/app/matchengine(lh_insert+0x4c) [0x5d48ec]
5 /var/exchdb/exchange/app/matchengine(OBJ_NAME_add+0x63) [0x5a1f73]
6 /usr/lib/x86_64-linux-gnu/libssl.so.1.1(+0x33e5e) [0x7fdb06a19e5e]
7 /lib/x86_64-linux-gnu/libpthread.so.0(+0xf827) [0x7fdb07832827]
8 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1(CRYPTO_THREAD_run_once+0x9) [0x7fdb066fa8f9]
9 /usr/lib/x86_64-linux-gnu/libssl.so.1.1(OPENSSL_init_ssl+0x8b) [0x7fdb06a1a07b]
10 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20(+0x5b224) [0x7fdb07a9d224]
11 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20(mysql_server_init+0x67) [0x7fdb07a62c27]
12 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20(mysql_init+0x17) [0x7fdb07a6b397]
13 /var/exchdb/exchange/app/matchengine(mysql_connect+0x25) [0x46ce3d]
14 /var/exchdb/exchange/app/matchengine(init_from_db+0x21) [0x454106]
15 /var/exchdb/exchange/app/matchengine(main+0x37f) [0x45c505]
16 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fdb06eb1b97]
17 /var/exchdb/exchange/app/matchengine(_start+0x29) [0x452d39]
===========backtrace=end===========

During investigation, it appears there is a conflict between libmysqlclient.so and libssl and since we are using bear metal, after update this problem started. we use docker for the build, but not for production. we are looking at a couple of solutions, one is to run ubuntu 16 instead of 18, the other is to copy the link lib to the execution folder of the match engine. since this is C we are also looking to see if its possible to embed the lib into the executable, so environment dependancies are reduced.
I am interested to know if anyone had this problem and what you did to resolve it. plus to maintain this engine future compatibility, it may be prudent to ensure as environments evolve, that the engine does to, for example, can we get this approved to run in ubuntu 18. since 16 is getting to no support levels soon.

Get "Operation not permitted" when executing "*.exe"

Thanks for you nice work!
However I got into trouble when the following logs appeared when I ran the docker compose up
And I need some help...

btc-service | >>> matchengine starting
btc-service | matchengine.exe: no process found
btc-service | process: matchengine version: 0.1.0, compile date: Sep 18 2018 11:08:06
btc-service | ./matchengine.exe: init process fail: -36: Operation not permitted
btc-service | >>> readhistory starting
btc-service | readhistory.exe: no process found
btc-service | process: readhistory version: 0.1.0, compile date: Sep 18 2018 11:08:11
btc-service | ./readhistory.exe: init process fail: -27: Operation not permitted
btc-service | >>> alertcenter starting...
btc-service | alertcenter.exe: no process found
btc-service | ./alertcenter.exe: init process fail: -26: Operation not permitted
btc-service | process: blockmaster version: 0.1.0, compile date: Sep 18 2018 11:08:11
btc-service | >>> accesshttp starting...
btc-service | accesshttp.exe: no process found
btc-service | process: accesshttp version: 0.1.0, compile date: Sep 18 2018 11:08:09
btc-service | ./accesshttp.exe: init process fail: -29: Operation not permitted
btc-service | >>> accessws starting...
btc-service | accessws.exe: no process found
btc-service | process: accessws version: 0.1.0, compile date: Sep 18 2018 11:08:10
btc-service | ./accessws.exe: init process fail: -40: Operation not permitted
btc-service | >>> marketprice starting...
btc-service | marketprice.exe: no process found
btc-service | ./marketprice.exe: init process fail: -28: Operation not permitted
btc-service | process: marketprice version: 0.1.0, compile date: Sep 18 2018 11:08:08

Building btc error

Building btc
Step 1/25 : FROM ubuntu:xenial AS btc-build
ERROR: Service 'btc' failed to build: Error parsing reference: "ubuntu:xenial AS btc-build" is not a valid repository/tag: invalid reference format

btc build error

btc-mysql | 2018-08-28T14:55:55.055728Z 11 [Note] Aborted connection 11 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.056765Z 10 [Note] Aborted connection 10 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.057167Z 9 [Note] Aborted connection 9 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.057510Z 8 [Note] Aborted connection 8 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.058067Z 7 [Note] Aborted connection 7 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.058412Z 6 [Note] Aborted connection 6 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.058771Z 5 [Note] Aborted connection 5 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.059294Z 4 [Note] Aborted connection 4 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.059664Z 3 [Note] Aborted connection 3 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-mysql | 2018-08-28T14:55:55.060311Z 2 [Note] Aborted connection 2 to db: 'trade_history' user: 'root' host: '172.18.0.8' (Got an error reading communication packets)
btc-service exited with code 1

Container build error

So, I build container on Ubuntu 16.06 and I can't start btc module

~/viabtc_exchange_server_docker# sudo docker-compose up Building btc Step 1/25 : FROM ubuntu:xenial AS btc-build ---> 0b1edfbffd27 Step 2/25 : MAINTAINER Guo Yukun ---> Using cache ---> 47678e006436 Step 3/25 : RUN sed -i "s/archive.ubuntu./mirrors.aliyun./g" /etc/apt/sources.list ---> Using cache ---> 1d8c6b490271 Step 4/25 : RUN apt-get update && apt-get install -y wget vim psmisc && apt-get -y install libev-dev libssl-dev libmpdec-dev libjansson-dev libmysqlclient-dev && apt-get install -y build-essential autoconf libtool python && rm -rf /var/lib/apt/lists/* &&mkdir /src/ && cd /src ---> Using cache ---> 8a3586c699ed Step 5/25 : WORKDIR /src/ ---> Using cache ---> 4780bce64a6c Step 6/25 : RUN wget https://codeload.github.com/edenhill/librdkafka/tar.gz/v0.11.3 -O /src/librdkafka.tar.gz && tar xzvf /src/librdkafka.tar.gz && rm -rf /src/librdkafka.tar.gz ---> Using cache ---> d9cb4e7f5834 Step 7/25 : RUN ls /src/ ---> Using cache ---> d4f295ae80a4 Step 8/25 : RUN cd /src/librdkafka-* && ./configure --prefix=/usr/local && sed -i "s/WITH_LDS=/#WITH_LDS=/g" Makefile.config && make && make install ---> Using cache ---> 0588e7e387e3 Step 9/25 : RUN wget https://codeload.github.com/curl/curl/tar.gz/curl-7_57_0 -O /src/curl-7.57.0.tar.gz && tar xzvf /src/curl-7.57.0.tar.gz && rm -rf /src/curl-7.57.0.tar.gz && mv curl-* curl && cd /src/curl && ./buildconf && ./configure --prefix=/usr/local --disable-shared --enable-static --without-libidn --without-ssl --without-librtmp --without-gnutls --without-nss --without-libssh2 --without-zlib --without-winidn --disable-rtsp --disable-ldap --disable-ldaps --disable-ipv6 && make && make install ---> Using cache ---> d9040bdc062d Step 10/25 : ADD build.sh /src/build.sh ---> Using cache ---> f756677b7265 Step 11/25 : RUN wget https://codeload.github.com/viabtc/viabtc_exchange_server/tar.gz/master -O /src/viabtc.tar.gz && tar xzvf /src/viabtc.tar.gz && rm -rf /src/viabtc.tar.gz && mv viabtc_exchange_server-* viabtc && cd /src/viabtc/network && make clean && make && cd /src/viabtc/depends/hiredis && make && make install && cd /src/viabtc/utils/ && make && /bin/bash /src/build.sh ---> Using cache ---> e0680724a536 Step 12/25 : WORKDIR /btc/ ---> Using cache ---> d82dcab68cdc Step 13/25 : CMD /bin/bash ---> Using cache ---> 83ae8d0133ce Step 14/25 : FROM btc-build ---> 83ae8d0133ce Step 15/25 : COPY /btc/ /btc/ ---> Using cache ---> 6be53b67f39b Step 16/25 : RUN mkdir -p /var/log/trade && mv /src/viabtc/matchengine/matchengine.exe /btc/matchengine/ && mv /src/viabtc/accesshttp/accesshttp.exe /btc/accesshttp/ && mv /src/viabtc/marketprice/marketprice.exe /btc/marketprice/ && mv /src/viabtc/accessws/accessws.exe /btc/accessws/ && mv /src/viabtc/alertcenter/alertcenter.exe /btc/alertcenter/ && mv /src/viabtc/readhistory/readhistory.exe /btc/readhistory/ && chmod +x /btc/*.sh && chmod +x /btc/*/*.exe ---> Running in 865d4e50fcad mv: cannot stat '/src/viabtc/marketprice/marketprice.exe': No such file or directory ERROR: Service 'btc' failed to build: The command '/bin/sh -c mkdir -p /var/log/trade && mv /src/viabtc/matchengine/matchengine.exe /btc/matchengine/ && mv /src/viabtc/accesshttp/accesshttp.exe /btc/accesshttp/ && mv /src/viabtc/marketprice/marketprice.exe /btc/marketprice/ && mv /src/viabtc/accessws/accessws.exe /btc/accessws/ && mv /src/viabtc/alertcenter/alertcenter.exe /btc/alertcenter/ && mv /src/viabtc/readhistory/readhistory.exe /btc/readhistory/ && chmod +x /btc/*.sh && chmod +x /btc/*/*.exe' returned a non-zero code: 1

docker-compose version 1.21.2, build a133471
Docker version 17.06.0-ce, build 02c1d87

build error

t_http.o ut_base64.o ut_mysql.o http_parser.o ut_rpc_clt.o ut_crc32.o ut_title.o ut_decimal.o ut_log.o ut_rpc_svr.o ut_config.o ut_sds.o ut_alert.o ut_kafka.o ut_dict.o ut_misc.o
ar: creating libutils.a
/src/build.sh: line 2: $'\r': command not found
/src/build.sh: line 9: $'\r': command not found
/src/build.sh: line 13: $'\r': command not found
: No such file or directory /src/viabtc/matchengine
sed: -e expression #1, char 44: unknown option to s' sed: -e expression #1, char 92: unknown option to s'
/src/build.sh: line 17: $'make\r': command not found
/src/build.sh: line 18: $'\r': command not found
: No such file or directory /src/viabtc/marketprice/
/src/build.sh: line 20: $'make\r': command not found
/src/build.sh: line 21: $'\r': command not found
: No such file or directory /src/viabtc/accesshttp/
/src/build.sh: line 23: $'make\r': command not found
/src/build.sh: line 24: $'\r': command not found
: No such file or directory /src/viabtc/accessws
/src/build.sh: line 26: $'make\r': command not found
/src/build.sh: line 27: $'\r': command not found
: No such file or directory /src/viabtc/alertcenter
/src/build.sh: line 29: $'make\r': command not found
/src/build.sh: line 30: $'\r': command not found
: No such file or directory /src/viabtc/readhistory
sed: -e expression #1, char 44: unknown option to s' sed: -e expression #1, char 92: unknown option to s'
/src/build.sh: line 34: $'make\r': command not found
ERROR: Service 'btc' failed to build: The command '/bin/sh -c wget https://codeload.github.com/viabtc/viabtc_exchange_server/tar.gz/master -O /src/viabtc.tar.gz && tar xzvf /src/viabtc.tar.gz && rm -rf /src/viabtc.tar.gz &&
mv viabtc_exchange_server-* viabtc && cd /src/viabtc/network && make clean && make && cd /src/viabtc/depends/hiredis && make && make install && cd /src/viabtc/utils/ && make && /bin/bash /src/build.sh' returned a non-zero code: 127

哥们 这个什么情况

mv: cannot stat '/src/viabtc/marketprice/marketprice.exe': No such file or directory
ERROR: Service 'btc' failed to build: The command '/bin/sh -c mkdir -p /var/log/trade && mv /src/viabtc/matchengine/matchengine.exe /btc/matchengine/ && mv /src/viabtc/accesshttp/accesshttp.exe /btc/accesshttp/ && mv /src/viabtc/marketprice/marketprice.exe /btc/marketprice/ && mv /src/viabtc/accessws/accessws.exe /btc/accessws/ && mv /src/viabtc/alertcenter/alertcenter.exe /btc/alertcenter/ && mv /src/viabtc/readhistory/readhistory.exe /btc/readhistory/ && chmod +x /btc/.sh && chmod +x /btc//*.exe' returned a non-zero code: 1

After exec docker-compose up, have error: cannot stat marketprice.exe

系统是:mac os 10.12.6
docker 版本是:18.03.1-ce
执行完:docker-compose up 后,报如下错误:

mv: cannot stat '/src/viabtc/marketprice/marketprice.exe': No such file or directory
ERROR: Service 'btc' failed to build: The command '/bin/sh -c mkdir -p /var/log/trade &&	mv /src/viabtc/matchengine/matchengine.exe  /btc/matchengine/ &&	mv /src/viabtc/accesshttp/accesshttp.exe  /btc/accesshttp/ &&	mv /src/viabtc/marketprice/marketprice.exe  /btc/marketprice/ &&	mv /src/viabtc/accessws/accessws.exe  /btc/accessws/ &&	mv /src/viabtc/alertcenter/alertcenter.exe  /btc/alertcenter/ &&	mv /src/viabtc/readhistory/readhistory.exe  /btc/readhistory/ &&	chmod +x /btc/*.sh &&	chmod +x /btc/*/*.exe' returned a non-zero code: 1

完整日志:

$ docker-compose up
Building btc
Step 1/25 : FROM ubuntu:xenial AS btc-build
 ---> 0b1edfbffd27
Step 2/25 : MAINTAINER Guo Yukun
 ---> Using cache
 ---> 124e174499bb
Step 3/25 : RUN sed -i "s/archive.ubuntu./mirrors.aliyun./g" /etc/apt/sources.list
 ---> Using cache
 ---> 95dd8e100ae1
Step 4/25 : RUN apt-get update &&    apt-get install -y wget vim psmisc &&	apt-get -y install libev-dev libssl-dev libmpdec-dev libjansson-dev   libmysqlclient-dev &&	apt-get install -y  build-essential autoconf libtool python &&	rm -rf /var/lib/apt/lists/* &&	mkdir /src/ &&	cd /src
 ---> Using cache
 ---> 69845b358144
Step 5/25 : WORKDIR /src/
 ---> Using cache
 ---> 9b14e6b034dd
Step 6/25 : RUN wget https://codeload.github.com/edenhill/librdkafka/tar.gz/v0.11.3 -O  /src/librdkafka.tar.gz &&	tar xzvf /src/librdkafka.tar.gz &&	rm -rf /src/librdkafka.tar.gz
 ---> Using cache
 ---> 5ffaf1433b30
Step 7/25 : RUN ls /src/
 ---> Using cache
 ---> 74e18697d0b0
Step 8/25 : RUN	cd /src/librdkafka-* &&  	./configure --prefix=/usr/local &&  	sed -i "s/WITH_LDS=/#WITH_LDS=/g" Makefile.config &&  	make &&  	make install
 ---> Using cache
 ---> b64560148377
Step 9/25 : RUN wget https://codeload.github.com/curl/curl/tar.gz/curl-7_57_0 -O /src/curl-7.57.0.tar.gz &&	tar xzvf /src/curl-7.57.0.tar.gz &&	rm -rf /src/curl-7.57.0.tar.gz &&	mv curl-* curl &&	cd /src/curl &&	./buildconf &&	./configure --prefix=/usr/local --disable-shared --enable-static --without-libidn --without-ssl --without-librtmp --without-gnutls --without-nss --without-libssh2 --without-zlib --without-winidn --disable-rtsp --disable-ldap --disable-ldaps --disable-ipv6 &&	make &&	make install
 ---> Using cache
 ---> c857ba1c31f3
Step 10/25 : ADD build.sh /src/build.sh
 ---> Using cache
 ---> b7108c551ef7
Step 11/25 : RUN wget https://codeload.github.com/viabtc/viabtc_exchange_server/tar.gz/master -O /src/viabtc.tar.gz && 	tar xzvf /src/viabtc.tar.gz  && 	rm -rf /src/viabtc.tar.gz && 	mv viabtc_exchange_server-* viabtc &&    cd /src/viabtc/network &&    make clean && make &&    cd /src/viabtc/depends/hiredis &&    make && make install &&    cd /src/viabtc/utils/ &&    make &&    /bin/bash /src/build.sh
 ---> Using cache
 ---> ac95ee53f14d
Step 12/25 : WORKDIR /btc/
 ---> Using cache
 ---> e3213bf33bbe
Step 13/25 : CMD /bin/bash
 ---> Using cache
 ---> ca498edf04ba
Step 14/25 : FROM btc-build
 ---> ca498edf04ba
Step 15/25 : COPY /btc/ /btc/
 ---> Using cache
 ---> 0a8f91bfa846
Step 16/25 : RUN mkdir -p /var/log/trade &&	mv /src/viabtc/matchengine/matchengine.exe  /btc/matchengine/ &&	mv /src/viabtc/accesshttp/accesshttp.exe  /btc/accesshttp/ &&	mv /src/viabtc/marketprice/marketprice.exe  /btc/marketprice/ &&	mv /src/viabtc/accessws/accessws.exe  /btc/accessws/ &&	mv /src/viabtc/alertcenter/alertcenter.exe  /btc/alertcenter/ &&	mv /src/viabtc/readhistory/readhistory.exe  /btc/readhistory/ &&	chmod +x /btc/*.sh &&	chmod +x /btc/*/*.exe
 ---> Running in 7c537f065763
mv: cannot stat '/src/viabtc/marketprice/marketprice.exe': No such file or directory
ERROR: Service 'btc' failed to build: The command '/bin/sh -c mkdir -p /var/log/trade &&	mv /src/viabtc/matchengine/matchengine.exe  /btc/matchengine/ &&	mv /src/viabtc/accesshttp/accesshttp.exe  /btc/accesshttp/ &&	mv /src/viabtc/marketprice/marketprice.exe  /btc/marketprice/ &&	mv /src/viabtc/accessws/accessws.exe  /btc/accessws/ &&	mv /src/viabtc/alertcenter/alertcenter.exe  /btc/alertcenter/ &&	mv /src/viabtc/readhistory/readhistory.exe  /btc/readhistory/ &&	chmod +x /btc/*.sh &&	chmod +x /btc/*/*.exe' returned a non-zero code: 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.