Skip to content  

Navigation Menu

 


Sign in  















Actions
 Automate any workflow  



Packages
 Host and manage packages  



Security
 Find and fix vulnerabilities  



Codespaces
 Instant dev environments  



GitHub Copilot
 Write better code with AI  



Code review
 Manage code changes  



Issues
 Plan and track work  



Discussions
 Collaborate outside of code  



Explore  

All features  

Documentation  

GitHub Skills  

Blog  







By size  

Enterprise  

Teams  

Startups  



By industry  

Healthcare  

Financial services  

Manufacturing  



By use case  

CI/CD & Automation  

DevOps  

DevSecOps  







Resources  

Learning Pathways  

White papers, Ebooks, Webinars  

Customer Stories  

Partners  











GitHub Sponsors
 Fund open source developers  







The ReadME Project
 GitHub community articles  



Repositories  

Topics  

Trending  

Collections  











Enterprise platform
 AI-powered developer platform  



Available add-ons  



Advanced Security
 Enterprise-grade security features  



GitHub Copilot
 Enterprise-grade AI features  



Premium Support
 Enterprise-grade 24/7 support  





Pricing
 

">  

Search or jump to...  

Search code, repositories, users, issues, pull requests...




Clear

Search syntax tips  










Provide feedback  







We read every piece of feedback, and take your input very seriously.


 
 


Saved searches  

Use saved searches to filter your results more quickly

 






To see all available qualifiers, see our documentation.






 
 

Sign in  
Sign up  




You signed in with another tab or window. Reload to refresh your session.  You signed out in another tab or window. Reload to refresh your session.  You switched accounts on another tab or window. Reload to refresh your session.  Dismiss alert  







{{ message }}
 








/   node-webkit-agent   Public  




Notifications  You must be signed in to change notification settings  

Fork  128  


Star  1.1k  







NodeJS agent for WebKit devtools front-end  

c4milo.github.io/node-webkit-agent/  

1.1k  stars   128  forks   Branches   Tags   Activity  



Star  


Notifications  You must be signed in to change notification settings  




Code  

Issues  15

Pull requests  1

Actions  

Projects    

Security  

Insights  


Additional navigation options  




Code  

Issues  

Pull requests  

Actions  

Projects  

Security  

Insights  




c4milo/node-webkit-agent






This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
 





 master
BranchesTags


Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

147 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


README

Node Webkit Agent


![Gitter](https://badges.gitter.im/Join Chat.svg) Stories in Ready
This module is an implementation of Chrome developer tools protocol. It is still pretty much a work in progress and only heap and CPU profilers are working right now. Help is wanted to finish implementing debugger, networking and console agents as well as a implementing from scratch a flamegraphs agent.

Features


This module allows you to debug and profile remotely your nodejs applications leveraging the following features by re-using the built-in devtools front-end that comes with any webkit-based browsers such as Chrome or Safari.


Remote heap and CPU profiling

More agents are coming.


Installation


npm install webkit-devtools-agent

Usage


From within your Node application, just require the module as usual, and start the agent. For example:

var agent = require('webkit-devtools-agent');
agent.start()


Once the agent is initiated, use any of the following hosted Devtools UIs to profile your application.

Node v0.6.x: http://c4milo.github.io/node-webkit-agent/19.0.1084.46/inspector.html?host=localhost:9999&page=0

Node v0.8.x and v0.10.x: http://c4milo.github.io/node-webkit-agent/26.0.1410.65/inspector.html?host=localhost:9999&page=0

You can also change the agent port and binding address where it listen to by setting up the following parameters:


port: The port for the Devtools UI to connect to using websockets. Set to 9999 by default

bind_to: The host or IP address where the websockets service is going to be bound to. Set to 127.0.0.1 by default

ipc_port: IPC port for internal use. Set to 3333 by default

verbose: Whether to log more information or not. Set to false by default


See the example below to understand better how to set these parameters.

Example


A more elaborated example looks like:

var agent = require('./index');

// Assume this HTTP service is your service
var http = require('http');
http.createServer(function (req, res) {
    console.log('boooo');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(9000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:9000/ , pid-> ' + process.pid);

// Now let's have a signal handler for SIGUSR2 that is going
// to activate the devtools agent. You can use any other means to activate
// the agent, not just signal handlers.
process.on('SIGUSR2', function () {
  if (agent.server) {
    agent.stop();
  } else {
    agent.start({
        port: 9999,
        bind_to: '0.0.0.0',
        ipc_port: 3333,
        verbose: true
    });
  }
});


ABI compatibility


ABI compatibility breaks between Node v0.6.x and v0.8.x. Therefore, if you switch Node versions you would have to re-install webkit-devtools-agent again. See issue #11.

Screenshots


CPU profiling


Screenshot

Heap Profiling


Screenshot
For detailed information on debugging memory leaks using devtools' heap comparisons (using this module), follow this tutorial.

Happy Debugging!

License


(The MIT License)

Copyright 2014 Camilo Aguilar. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 





About


NodeJS agent for WebKit devtools front-end  

c4milo.github.io/node-webkit-agent/  

Resources


Readme  

Activity  

Stars


1.1k  stars  

Watchers


52 watching  

Forks


128  forks  

Report repository  





Releases

  12 tags  



Packages  


No packages published 








Contributors  11







































Languages


 


JavaScript  67.0%  

C++  31.8%  

Python  1.2%  









Footer



© 2024 GitHub, Inc.  


Terms  

Privacy  

Security  

Status  

Docs  

Contact  






You cant perform that action at this time.