Git Product home page Git Product logo

Comments (3)

pabloFuente avatar pabloFuente commented on August 17, 2024

I guess you are using openvidu-server-2.8.0.jar.

Can I take a look to the standard log output of openvidu-server from startup? I mean, the log output from:

______________________________________________ 
   ____               __      ___     _       
  / __ \              \ \    / (_)   | |      
 | |  | |_ __   ___ _ _\ \  / / _  __| |_   _
 | |  | | '_ \ / _ \ '_ \ \/ / | |/ _` | | | |
 | |__| | |_) |  __/ | | \  /  | | (_| | |_| |
  \____/| .__/ \___|_| |_|\/   |_|\__,_|\__,_|
        | |
        |_|             version 2.8.0
______________________________________________ 

until

[INFO] 2019-02-19 16:00:29,770 [main] io.openvidu.server.OpenViduServer (logStarted) - Started OpenViduServer in 4.686 seconds (JVM running for 5.46)

Release 2.8.0 introduced lots of logging improvements regarding the startup process, especially related to recording service. If there's any configuration problem, it will be there.

from openvidu-tutorials.

Jagdeep-Sing avatar Jagdeep-Sing commented on August 17, 2024

Here is the log output:

______________________________________________
   ____               __      ___     _       
  / __ \              \ \    / (_)   | |      
 | |  | |_ __   ___ _ _\ \  / / _  __| |_   _
 | |  | | '_ \ / _ \ '_ \ \/ / | |/ _` | | | |
 | |__| | |_) |  __/ | | \  /  | | (_| | |_| |
  \____/| .__/ \___|_| |_|\/   |_|\__,_|\__,_|
        | |
        |_|             version 2.8.0
______________________________________________                                          

[INFO] 2019-02-20 11:51:57,001 [main] io.openvidu.server.OpenViduServer (logStarting) - Starting OpenViduServer on ip-172-31-19-28 with PID 2234 (/opt/openvidu/openvidu-server.jar started by root in /var/www/html)
[INFO] 2019-02-20 11:51:57,001 [main] io.openvidu.server.OpenViduServer (logStartupProfileInfo) - No active profile set, falling back to default profiles: default
[INFO] 2019-02-20 11:51:57,360 [ound-preinit] org.hibernate.validator.internal.util.Version (<clinit>) - HV000001: Hibernate Validator 5.2.4.Final
[INFO] 2019-02-20 11:51:57,471 [main] org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext (prepareRefresh) - Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5b80350b: startup date [Wed Feb 20 11:51:57 UTC 2019]; root of context hierarchy
[INFO] 2019-02-20 11:51:58,592 [main] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor (<init>) - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[INFO] 2019-02-20 11:51:58,908 [main] io.openvidu.server.coturn.CoturnCredentialsService (<init>) - COTURN Redis DB accessible with string "ip=127.0.0.1 dbname=0 password=turn connect_timeout=30"
[INFO] 2019-02-20 11:51:58,908 [main] io.openvidu.server.coturn.CoturnCredentialsService (<init>) - Cleaning COTURN DB...
[INFO] 2019-02-20 11:51:58,908 [main] io.openvidu.server.coturn.CoturnCredentialsService (<init>) - Path of COTURN log files: /var/log/
[INFO] 2019-02-20 11:51:58,913 [main] io.openvidu.server.coturn.CoturnCredentialsService (<init>) - COTURN DB is now empty
[INFO] 2019-02-20 11:51:58,914 [main] io.openvidu.server.coturn.CoturnCredentialsService (<init>) - Using COTURN credentials service for BASH environment
[INFO] 2019-02-20 11:51:58,938 [main] io.openvidu.server.OpenViduServer (kmsManager) - Configuring OpenVidu Server to use first of the following kmss: [ws://localhost:8888/kurento]
[INFO] 2019-02-20 11:51:58,965 [atExec-e1-t0] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket (connectNativeClient) - [KurentoClient]  Connecting native client
[INFO] 2019-02-20 11:51:58,965 [atExec-e1-t0] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket (connectNativeClient) - [KurentoClient]  Creating new NioEventLoopGroup
[INFO] 2019-02-20 11:51:59,193 [oopGroup-2-1] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket (initChannel) - [KurentoClient]  Initiating new Netty channel. Will create new handler too!
[WARN] 2019-02-20 11:51:59,341 [ntExec-e2-t0] io.openvidu.server.kurento.kms.FixedOneKmsManager (connected) - Kurento Client is now connected to KMS with uri ws://localhost:8888/kurento
[INFO] 2019-02-20 11:51:59,742 [main] io.openvidu.server.recording.service.RecordingManager (initializeRecordingManager) - Recording module required: Downloading openvidu/openvidu-recording:2.8.0 Docker image (800 MB aprox)
[INFO] 2019-02-20 11:52:00,325 [main] io.openvidu.server.recording.service.RecordingManager (initializeRecordingManager) - Docker image already exists locally
[INFO] 2019-02-20 11:52:00,347 [main] io.openvidu.server.recording.service.RecordingManager (initRecordingPath) - Initializing recording path
[INFO] 2019-02-20 11:52:00,348 [main] io.openvidu.server.recording.service.RecordingManager (initRecordingPath) - OpenVidu Server has write permissions on recording path: /var/www/html/recordings
[INFO] 2019-02-20 11:52:00,685 [main] io.openvidu.server.recording.service.RecordingManager (initRecordingPath) - Kurento Media Server has write permissions on recording path: /var/www/html/recordings
[INFO] 2019-02-20 11:52:00,691 [main] io.openvidu.server.recording.service.RecordingManager (initRecordingPath) - OpenVidu Server has write permissions over files created by Kurento Media Server
[INFO] 2019-02-20 11:52:00,692 [main] io.openvidu.server.recording.service.RecordingManager (initRecordingPath) - Recording path successfully initialized at /var/www/html/recordings
[INFO] 2019-02-20 11:52:00,692 [main] io.openvidu.server.OpenViduServer (init) - OpenVidu Server using custom URL: [wss://online-kaffeehaus.at:4443]
[INFO] 2019-02-20 11:52:01,013 [main] org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer (initialize) - Tomcat initialized with port(s): 5446 (http)
[INFO] 2019-02-20 11:52:01,028 [main] org.apache.catalina.core.StandardService (log) - Starting service Tomcat
[INFO] 2019-02-20 11:52:01,029 [main] org.apache.catalina.core.StandardEngine (log) - Starting Servlet Engine: Apache Tomcat/8.5.6
[INFO] 2019-02-20 11:52:01,118 [-startStop-1] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] (log) - Initializing Spring embedded WebApplicationContext
[INFO] 2019-02-20 11:52:01,119 [-startStop-1] org.springframework.web.context.ContextLoader (prepareEmbeddedWebApplicationContext) - Root WebApplicationContext: initialization completed in 3650 ms
[INFO] 2019-02-20 11:52:01,305 [-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean (configure) - Mapping filter: 'characterEncodingFilter' to: [/*]
[INFO] 2019-02-20 11:52:01,306 [-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean (configure) - Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
[INFO] 2019-02-20 11:52:01,306 [-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean (configure) - Mapping filter: 'httpPutFormContentFilter' to: [/*]
[INFO] 2019-02-20 11:52:01,307 [-startStop-1] org.springframework.boot.web.servlet.FilterRegistrationBean (configure) - Mapping filter: 'requestContextFilter' to: [/*]
[INFO] 2019-02-20 11:52:01,308 [-startStop-1] org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean (configure) - Mapping filter: 'springSecurityFilterChain' to: [/*]
[INFO] 2019-02-20 11:52:01,308 [-startStop-1] org.springframework.boot.web.servlet.ServletRegistrationBean (onStartup) - Mapping servlet: 'dispatcherServlet' to [/]
[INFO] 2019-02-20 11:52:01,694 [main] org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler (initialize) - Initializing ExecutorService  'defaultSockJsTaskScheduler'
[INFO] 2019-02-20 11:52:01,715 [main] org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler (initialize) - Initializing ExecutorService  'jsonrpcTaskScheduler'
[INFO] 2019-02-20 11:52:01,740 [main] org.springframework.web.socket.server.support.WebSocketHandlerMapping (registerHandler) - Mapped URL path [/info] onto handler of type [class org.springframework.web.socket.server.support.WebSocketHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,741 [main] org.springframework.web.socket.server.support.WebSocketHandlerMapping (registerHandler) - Mapped URL path [/openvidu] onto handler of type [class org.springframework.web.socket.server.support.WebSocketHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,754 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/openvidu] onto handler of type [class org.kurento.jsonrpc.internal.http.JsonRpcHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,833 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter (initControllerAdviceCache) - Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5b80350b: startup date [Wed Feb 20 11:51:57 UTC 2019]; root of context hierarchy
[INFO] 2019-02-20 11:52:01,903 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions/{sessionId}/stream/{streamId}],methods=[DELETE]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.unpublishStream(java.lang.String,java.lang.String)
[INFO] 2019-02-20 11:52:01,905 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions/{sessionId}],methods=[GET]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.getSession(java.lang.String,boolean)
[INFO] 2019-02-20 11:52:01,906 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/tokens],methods=[POST]}" onto public org.springframework.http.ResponseEntity<java.lang.String> io.openvidu.server.rest.SessionRestController.newToken(java.util.Map<?, ?>)
[INFO] 2019-02-20 11:52:01,906 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions/{sessionId}],methods=[DELETE]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.closeSession(java.lang.String)
[INFO] 2019-02-20 11:52:01,906 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions],methods=[POST]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.getSessionId(java.util.Map<?, ?>)
[INFO] 2019-02-20 11:52:01,907 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/recordings/{recordingId}],methods=[GET]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.getRecording(java.lang.String)
[INFO] 2019-02-20 11:52:01,907 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/recordings],methods=[GET]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.getAllRecordings()
[INFO] 2019-02-20 11:52:01,907 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/recordings/start],methods=[POST]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.startRecordingSession(java.util.Map<?, ?>)
[INFO] 2019-02-20 11:52:01,908 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/recordings/stop/{recordingId}],methods=[POST]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.stopRecordingSession(java.lang.String)
[INFO] 2019-02-20 11:52:01,908 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/recordings/{recordingId}],methods=[DELETE]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.deleteRecording(java.lang.String)
[INFO] 2019-02-20 11:52:01,909 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions],methods=[GET]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.listSessions(boolean)
[INFO] 2019-02-20 11:52:01,909 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/api/sessions/{sessionId}/connection/{connectionId}],methods=[DELETE]}" onto public org.springframework.http.ResponseEntity<?> io.openvidu.server.rest.SessionRestController.disconnectParticipant(java.lang.String,java.lang.String)
[INFO] 2019-02-20 11:52:01,909 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/accept-certificate],methods=[GET]}" onto public java.lang.String io.openvidu.server.rest.CertificateRestController.acceptCert() throws java.lang.Exception
[INFO] 2019-02-20 11:52:01,913 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config/openvidu-publicurl],methods=[GET]}" onto public java.lang.String io.openvidu.server.rest.ConfigRestController.getOpenViduPublicUrl()
[INFO] 2019-02-20 11:52:01,914 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config/openvidu-recording-path],methods=[GET]}" onto public java.lang.String io.openvidu.server.rest.ConfigRestController.getOpenViduRecordingPath()
[INFO] 2019-02-20 11:52:01,914 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config/openvidu-version],methods=[GET]}" onto public java.lang.String io.openvidu.server.rest.ConfigRestController.getOpenViduServerVersion()
[INFO] 2019-02-20 11:52:01,914 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config/openvidu-recording],methods=[GET]}" onto public java.lang.Boolean io.openvidu.server.rest.ConfigRestController.getOpenViduRecordingEnabled()
[INFO] 2019-02-20 11:52:01,916 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config/openvidu-cdr],methods=[GET]}" onto public java.lang.Boolean io.openvidu.server.rest.ConfigRestController.getOpenViduCdrEnabled()
[INFO] 2019-02-20 11:52:01,916 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/config],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> io.openvidu.server.rest.ConfigRestController.getOpenViduConfiguration()
[INFO] 2019-02-20 11:52:01,918 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
[INFO] 2019-02-20 11:52:01,918 [main] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping (register) - Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[INFO] 2019-02-20 11:52:01,941 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/layouts/custom/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,941 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/recordings/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,941 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,941 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[INFO] 2019-02-20 11:52:01,979 [main] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping (registerHandler) - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[WARN] 2019-02-20 11:52:02,020 [main] org.thymeleaf.templatemode.TemplateMode (parse) - [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
[INFO] 2019-02-20 11:52:02,282 [main] org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WelcomePageHandlerMapping (<init>) - Adding welcome page: class path resource [static/index.html]
[INFO] 2019-02-20 11:52:02,463 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/css/**'], []
[INFO] 2019-02-20 11:52:02,464 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/js/**'], []
[INFO] 2019-02-20 11:52:02,464 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/images/**'], []
[INFO] 2019-02-20 11:52:02,464 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/webjars/**'], []
[INFO] 2019-02-20 11:52:02,464 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/**/favicon.ico'], []
[INFO] 2019-02-20 11:52:02,464 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: Ant [pattern='/error'], []
[INFO] 2019-02-20 11:52:02,559 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7068e664, org.springframework.security.web.context.SecurityContextPersistenceFilter@45385f75, org.springframework.security.web.header.HeaderWriterFilter@660acfb, org.springframework.web.filter.CorsFilter@60db1c0e, org.springframework.security.web.authentication.logout.LogoutFilter@1224144a, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@461ad730, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2d29b4ee, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6e2aa843, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@3e78b6a5, org.springframework.security.web.session.SessionManagementFilter@5efa40fe, org.springframework.security.web.access.ExceptionTranslationFilter@798162bc, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3b6d844d]
[INFO] 2019-02-20 11:52:02,564 [main] org.springframework.security.web.DefaultSecurityFilterChain (<init>) - Creating filter chain: OrRequestMatcher [requestMatchers=[Ant [pattern='/**']]], [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6bb4dd34, org.springframework.security.web.context.SecurityContextPersistenceFilter@e3b3b2f, org.springframework.security.web.header.HeaderWriterFilter@3e2055d6, org.springframework.security.web.authentication.logout.LogoutFilter@28194a50, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@7f2cfe3f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@50f6ac94, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6cc4cdb9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7d9f158f, org.springframework.security.web.session.SessionManagementFilter@50029372, org.springframework.security.web.access.ExceptionTranslationFilter@18f8cd79, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2ad48653]
[INFO] 2019-02-20 11:52:02,651 [main] org.springframework.jmx.export.annotation.AnnotationMBeanExporter (afterSingletonsInstantiated) - Registering beans for JMX exposure on startup
[INFO] 2019-02-20 11:52:02,657 [main] org.springframework.context.support.DefaultLifecycleProcessor (start) - Starting beans in phase 2147483647
[INFO] 2019-02-20 11:52:02,668 [main] org.apache.coyote.http11.Http11NioProtocol (log) - Initializing ProtocolHandler ["http-nio-0.0.0.0-5446"]
[INFO] 2019-02-20 11:52:02,677 [main] org.apache.coyote.http11.Http11NioProtocol (log) - Starting ProtocolHandler [http-nio-0.0.0.0-5446]
[INFO] 2019-02-20 11:52:02,679 [main] org.apache.tomcat.util.net.NioSelectorPool (log) - Using a shared selector for servlet write/read
[INFO] 2019-02-20 11:52:02,696 [main] org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer (start) - Tomcat started on port(s): 5446 (http)
[INFO] 2019-02-20 11:52:02,699 [main] io.openvidu.server.OpenViduServer (printUrl) - 

    ACCESS IP            
-------------------------
https://online-kaffeehaus.at:4443/
-------------------------

[INFO] 2019-02-20 11:52:02,700 [main] io.openvidu.server.OpenViduServer (logStarted) - Started OpenViduServer in 6.195 seconds (JVM running for 7.017)

from openvidu-tutorials.

CSantosM avatar CSantosM commented on August 17, 2024

Closes for inactivity. Update the OpenVidu deployment and reopen the issue if tou still have the problem.

from openvidu-tutorials.

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.