Skip to content

mdp/pitboss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deprication and better alternative

This library is old, unmaintained and not very useful. Please see vm2 if you're need something similar.

Build Status

Pitboss

Pitboss

A module for running untrusted code

Runs JS code and returns the last eval'd statement

code = """
  num = num % 5;
  num;
"""
pitboss = new Pitboss(code)
pitboss.run {num: 23}, (err, result) ->
  assert.equal 3, result

Handles processes that take too damn long

code = """
  while(true) { num % 3 };
"""
pitboss = new Pitboss code
  timeout: 2000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "Timeout", err

Doesn't choke under pressure(or shitty code)

code = """
  What the fuck am I writing?
"""
pitboss = new Pitboss code
  timeout: 2000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "VM Syntax Error: SyntaxError: Unexpected identifier", err

Doesn't handle this! But 'ulimit' does!

code = """
  str = ''
  while(true) { str = str + "Memory is a finite resource!" };
"""
pitboss = new Pitboss code
  timeout: 10000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "Process failed", err

And since Pitboss forks each process, ulimit kills only the runner

About

Run dubious code in node!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published