Git Product home page Git Product logo

Comments (4)

rfuchs avatar rfuchs commented on July 22, 2024

Can you post the complete rtpengine log for such a call please?

from rtpengine.

szcom avatar szcom commented on July 22, 2024

nohup: ignoring input
INFO: Generating new DTLS certificate
INFO: Startup complete, version 3.3.0.0+0mr3.5.0.0 git-master-c1d7a52
INFO: Got valid command from 10.2.48.106:60920: offer - { "sdp": "v=0
o=- 953667439599975109 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio
a=msid-semantic:WMS 5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 1.1.1.1
a=rtcp:1 IN IP4 1.1.1.1
a=ice-ufrag:KGFcYx5iPqQFYOSk
a=ice-pwd:MTOSL27xqOU7m3vd0iGi7qtZ
a=ice-options:google-ice
a=fingerprint:sha-256 ED:A1:49:AB:A9:4D:97:91:D8:7F:5B:42:D9:B0:A4:04:4D:B9:3F:AA:99:F8:05:57:7A:59:D7:89:71:42:5 ...
INFO: ... 8:1A
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:1373181804 cname:iB/tl+Z177Jpeh2G
a=ssrc:13 ...
INFO: ... 73181804 msid:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=ssrc:1373181804 mslabel:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
a=ssrc:1373181804 label:c0655f65-fded-4bd8-ac3d-a70cd6b33740
", "ICE": "remove", "direction": [ "internal", "external" ], "replace": [ "session-connection" ], "transport-protocol": "RTP/AVP", "call-id": "[email protected]", "received-from": [ "IP4", "10.2.48.106" ], "from-tag": "6565", "command": "offer" }
NOTICE: [[email protected]] Creating new call
DEBUG: [[email protected]] Opened ports 30000..30001 for media relay
DEBUG: [[email protected]] Opened ports 30020..30021 for media relay
INFO: [[email protected]] Returning to SIP proxy: d3:sdp761:v=0
o=- 953667439599975109 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS 5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
m=audio 30000 RTP/AVP 111 103 104 0 8 106 105 13 126
c=IN IP4 46.51.202.63
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:13 ...
INFO: [[email protected]] ... 73181804 cname:iB/tl+Z177Jpeh2G
a=ssrc:1373181804 msid:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=ssrc:1373181804 mslabel:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
a=ssrc:1373181804 label:c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=sendrecv
a=rtcp:30001
a=rtcp-mux
6:result2:oke
INFO: Got valid command from 10.2.48.106:56502: answer - { "sdp": "v=0
o=- 1149310953 1149310953 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 213.230.178.8
t=0 0
m=audio 46414 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
", "ICE": "force", "direction": [ "external", "internal" ], "transport-protocol": "RTP/SAVPF", "call-id": "[email protected]", "received-from": [ "IP4", "10.2.18.109" ], "from-tag": "6565", "to-tag": "sbc05104gzyf4fz-CC-1006", "command": "answer" }
INFO: [[email protected]] Returning to SIP proxy: d3:sdp503:v=0
o=- 1149310953 1149310953 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 46.51.202.63
t=0 0
a=ice-lite
m=audio 30020 RTP/SAVPF 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=sendrecv
a=rtcp:30021
a=setup:active
a=fingerprint:sha-1 54:49:FF:91:5F:BB:92:7A:FD:A7:D6:9B:2E:AA:65:3C:2F:7B:74:B8
a=ice-ufrag:iVmQwxuA
a=ice-pwd:JFX42gyo6XGagRNnkmTCj7vA3Pqx
a=candidate:luoQrh6jdF7tBxjX 1 UDP 2130706431 46.51.202.63 30020 typ host
a=candidate:luoQrh6jdF7tBxjX 2 UDP 213 ...
INFO: [[email protected]] ... 0706430 46.51.202.63 30021 typ host
6:result2:oke
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
INFO: [[email protected] port 30021] DTLS: Peer certificate accepted
INFO: [[email protected] port 30020] DTLS: Peer certificate accepted
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
ERR: [[email protected] port 30000] SRTP output wanted, but no crypto suite was negotiated
DEBUG: [[email protected] port 30021] DTLS handshake successful
INFO: [[email protected] port 30021] DTLS-SRTP successfully negotiated
DEBUG: [[email protected] port 30020] DTLS handshake successful
INFO: [[email protected] port 30020] DTLS-SRTP successfully negotiated
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30000] Confirmed peer address as 213.230.178.8:46414
INFO: [[email protected] port 30020] Confirmed peer address as 84.209.46.53:50627
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30021] Confirmed peer address as 84.209.46.53:50627
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30001] Confirmed peer address as 213.230.178.8:46415
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: Got valid command from 10.2.48.106:60920: answer - { "sdp": "v=0
o=- 1149310953 1149310953 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 213.230.178.8
t=0 0
m=audio 46414 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
", "ICE": "force", "direction": [ "external", "internal" ], "transport-protocol": "RTP/SAVPF", "call-id": "[email protected]", "received-from": [ "IP4", "10.2.18.109" ], "from-tag": "6565", "to-tag": "sbc05104gzyf4fz-CC-1006", "command": "answer" }
INFO: [[email protected]] Returning to SIP proxy: d3:sdp503:v=0
o=- 1149310953 1149310953 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 46.51.202.63
t=0 0
a=ice-lite
m=audio 30020 RTP/SAVPF 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=sendrecv
a=rtcp:30021
a=setup:active
a=fingerprint:sha-1 54:49:FF:91:5F:BB:92:7A:FD:A7:D6:9B:2E:AA:65:3C:2F:7B:74:B8
a=ice-ufrag:iVmQwxuA
a=ice-pwd:JFX42gyo6XGagRNnkmTCj7vA3Pqx
a=candidate:luoQrh6jdF7tBxjX 1 UDP 2130706431 46.51.202.63 30020 typ host
a=candidate:luoQrh6jdF7tBxjX 2 UDP 213 ...
INFO: [[email protected]] ... 0706430 46.51.202.63 30021 typ host
6:result2:oke
INFO: Got valid command from 10.2.48.106:56502: offer - { "sdp": "v=0
o=- 953667439599975109 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio
a=msid-semantic:WMS 5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 1.1.1.1
a=rtcp:1 IN IP4 1.1.1.1
a=ice-ufrag:KGFcYx5iPqQFYOSk
a=ice-pwd:MTOSL27xqOU7m3vd0iGi7qtZ
a=ice-options:google-ice
a=fingerprint:sha-256 ED:A1:49:AB:A9:4D:97:91:D8:7F:5B:42:D9:B0:A4:04:4D:B9:3F:AA:99:F8:05:57:7A:59:D7:89:71:42:5 ...
INFO: ... 8:1A
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:1373181804 cname:iB/tl+Z177Jpeh2G
a=ssrc:13 ...
INFO: ... 73181804 msid:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=ssrc:1373181804 mslabel:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
a=ssrc:1373181804 label:c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=candidate:153888780 1 udp 2122260223 172.16.10.46 50544 typ host generation 0
a=candidate:153888780 2 udp 2122260223 172.16.10.46 50544 typ host generation 0
a=candidate:3022624816 1 udp 2122194687 192.168.1.4 50627 typ host generation 0
a=candidate:3022624816 2 udp 2122194687 19 ...
INFO: ... 2.168.1.4 50627 typ host generation 0
a=candidate:1202705660 1 tcp 1518280447 172.16.10.46 0 typ host tcptype active generation 0
a=candidate:1202705660 2 tcp 1518280447 172.16.10.46 0 typ host tcptype active generation 0
a=candidate:4205470912 1 tcp 1518214911 192.168.1.4 0 typ host tcptype active generation 0
a=candidate:4205470912 2 tcp 1518214911 192.168.1.4 0 typ host tcptype active generation 0
", "ICE": "remove", "direction": [ "internal", "external" ], "replace": [ "session-connecti ...
INFO: ... on" ], "transport-protocol": "RTP/AVP", "call-id": "[email protected]", "received-from": [ "IP4", "10.2.48.106" ], "from-tag": "6565", "to-tag": "sbc05104gzyf4fz-CC-1006", "command": "offer" }
INFO: [[email protected]] Returning to SIP proxy: d3:sdp761:v=0
o=- 953667439599975109 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS 5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
m=audio 30000 RTP/AVP 111 103 104 0 8 106 105 13 126
c=IN IP4 46.51.202.63
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:13 ...
INFO: [[email protected]] ... 73181804 cname:iB/tl+Z177Jpeh2G
a=ssrc:1373181804 msid:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=ssrc:1373181804 mslabel:5i9BIQG3Hmqt68KjSRyeIm1zUwXVvRgeSKNI
a=ssrc:1373181804 label:c0655f65-fded-4bd8-ac3d-a70cd6b33740
a=sendrecv
a=rtcp:30001
a=rtcp-mux
6:result2:oke
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: Got valid command from 10.2.48.106:60920: answer - { "sdp": "v=0
o=- 1149310953 1149310954 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 213.230.178.8
t=0 0
m=audio 46414 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
", "ICE": "force", "direction": [ "external", "internal" ], "transport-protocol": "RTP/SAVPF", "call-id": "[email protected]", "received-from": [ "IP4", "10.2.18.109" ], "from-tag": "6565", "to-tag": "sbc05104gzyf4fz-CC-1006", "command": "answer" }
INFO: [[email protected]] Returning to SIP proxy: d3:sdp503:v=0
o=- 1149310953 1149310954 IN IP4 213.230.178.8
s=SBC call
c=IN IP4 46.51.202.63
t=0 0
a=ice-lite
m=audio 30020 RTP/SAVPF 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=sendrecv
a=rtcp:30021
a=setup:active
a=fingerprint:sha-1 54:49:FF:91:5F:BB:92:7A:FD:A7:D6:9B:2E:AA:65:3C:2F:7B:74:B8
a=ice-ufrag:iVmQwxuA
a=ice-pwd:JFX42gyo6XGagRNnkmTCj7vA3Pqx
a=candidate:luoQrh6jdF7tBxjX 1 UDP 2130706431 46.51.202.63 30020 typ host
a=candidate:luoQrh6jdF7tBxjX 2 UDP 213 ...
INFO: [[email protected]] ... 0706430 46.51.202.63 30021 typ host
6:result2:oke
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: [[email protected] port 30020] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30020] STUN: using this candidate
INFO: [[email protected] port 30021] Successful STUN binding request from 84.209.46.53:50627
INFO: [[email protected] port 30021] STUN: using this candidate
INFO: Version 3.3.0.0+0
mr3.5.0.0 git-master-c1d7a52 shutting down

from rtpengine.

rfuchs avatar rfuchs commented on July 22, 2024

Sorry for the late reply, is this still an issue?

Looking at the logs, I don't think they show what you think is happening. SRTP is arriving from the SIP endpoint before the DTLS handshake was completed. Since SRTP isn't up yet, these packets are dropped (errors logged). They're not sent unencrypted. They're also not sent encrypted before the SRTP endpoint knows the key, because the keys are negotiated through DTLS, peer to peer. Have you run a packet dump to confirm that this is actually what's happening?

from rtpengine.

szcom avatar szcom commented on July 22, 2024

Thanks for reply!
Yes I think you are right. I probably heard an audio feedback.

One thing I am observing is that it takes upto 10-12 seconds to setup DTLS and have audio both ways. But that is another issue

from rtpengine.

Related Issues (20)

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.