{"_id":"fastcgi-stream","_rev":"12-774c23a3e207aa26bc717701656dfba3","name":"fastcgi-stream","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"fastcgi-stream","version":"0.1.0","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","keywords":"fcgi, fastcgi","author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"main":"./lib/index","engines":{"node":">= 0.4.0"},"dependencies":{"vows":">= 0.5.6","bufferlist":">= 0.0.6","stream-buffers":">= 0.2.1","duplex-stream":">= 0.1.0"},"repository":{"type":"git","url":"https://github.com/samcday/node-fastcgi-stream.git"},"scripts":{"test":"vows test/fastcgi.test.js --spec"},"_id":"fastcgi-stream@0.1.0","_engineSupported":true,"_npmVersion":"0.2.14-5","_nodeVersion":"v0.4.1","directories":{"lib":"./lib"},"modules":{"buffer_utils.js":"lib/buffer_utils.js","records.js":"lib/records.js","index.js":"lib/index.js","constants.js":"lib/constants.js","stream.js":"lib/stream.js","records/get_values_result.js":"lib/records/get_values_result.js","records/begin_request.js":"lib/records/begin_request.js","records/params.js":"lib/records/params.js","records/data.js":"lib/records/data.js","records/stderr.js":"lib/records/stderr.js","records/end_request.js":"lib/records/end_request.js","records/unknown_type.js":"lib/records/unknown_type.js","records/abort_request.js":"lib/records/abort_request.js","records/get_values.js":"lib/records/get_values.js","records/stdout.js":"lib/records/stdout.js","records/common.js":"lib/records/common.js","records/stdin.js":"lib/records/stdin.js"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"125abce4440f1563b76ea36ddd6a438bac232261","tarball":"https://registry.npmjs.org/fastcgi-stream/-/fastcgi-stream-0.1.0.tgz","integrity":"sha512-UQtYzRKAUIlZjiaSGP5SzB0EFeA1Vhm6EVlnZ6mTgv2vqOCpi74ePgKWqxqV0w4Jmsk85lT0hE/JZYIQSrVA8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGjOd99lvG1LiWyM2uSfF9rn+YhALEF0Rq2ILPHun2fqAiEAoH4eJay/1wYUOem3/ZvB6SbnO0/QHtV+ygWIi158iVI="}]}},"0.1.1":{"name":"fastcgi-stream","version":"0.1.1","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","keywords":"fcgi, fastcgi","author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"main":"./lib/index.js","engines":{"node":">= 0.4.0"},"dependencies":{"vows":">= 0.5.6","bufferlist":">= 0.0.6","stream-buffers":">= 0.2.1","duplex-stream":">= 0.1.0"},"repository":{"type":"git","url":"git://github.com/samcday/node-fastcgi-stream.git"},"scripts":{"test":"vows test/fastcgi.test.js --spec"},"_id":"fastcgi-stream@0.1.1","_engineSupported":true,"_npmVersion":"0.3.17","_nodeVersion":"v0.4.2","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"9cff386a3a886ceaad5ab60a01139b5c4667d280","tarball":"https://registry.npmjs.org/fastcgi-stream/-/fastcgi-stream-0.1.1.tgz","integrity":"sha512-HqFkZC0JRyirxeJSaoLVx/fgyxi5HVT+8fAxprNT+QUAR7u95CNIo/WqURPUVVvHFWY0ZsPwMxemzktXtbkvGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2R+dOIqy25Y95rqvZCBKoke6EaB4n4EpuHaXi9HHBzQIgfkFggtriwumckBSqt3pv1VUhXOpyHhyVp8h91zhrWrU="}]}},"0.1.2":{"name":"fastcgi-stream","version":"0.1.2","license":"Unlicense","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","keywords":["fcgi","fastcgi"],"author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"main":"./lib/index.js","engines":{"node":">= 0.4.0"},"dependencies":{"vows":">= 0.5.6","bufferlist":">= 0.0.6","stream-buffers":">= 0.2.1","duplex-stream":">= 0.1.0"},"repository":{"type":"git","url":"https://github.com/samcday/node-fastcgi-stream.git"},"scripts":{"test":"vows test/fastcgi.test.js --spec"},"bugs":{"url":"https://github.com/samcday/node-fastcgi-stream/issues"},"homepage":"https://github.com/samcday/node-fastcgi-stream","_id":"fastcgi-stream@0.1.2","dist":{"shasum":"0b4abe916b6bd111dd1b533be532a0947ff049f9","tarball":"https://registry.npmjs.org/fastcgi-stream/-/fastcgi-stream-0.1.2.tgz","integrity":"sha512-Q2iOKuOVrlJhsUN1pLwFYFpgCZqsqF6In/pngW01G8vAXmdouA6rAR9LaOfj11Aj5F6hM40VoJe3XuoHHM4P5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGzlMfbuYx8/qeI2/ojWDb8rJ1MdOiVAWfv3zsUBQAPwIgSnMNt0h7VPU1qSZYXWyfdRVayGlLrIRbSzXHaawDao4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"samcday","email":"me@samcday.com.au"},"maintainers":[{"name":"samcday","email":"sam.c.day@gmail.com"}]},"0.1.3":{"name":"fastcgi-stream","version":"0.1.3","license":"Unlicense","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","keywords":["fcgi","fastcgi"],"author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"main":"./lib/index.js","engines":{"node":">= 0.4.0"},"dependencies":{"bufferlist":">= 0.0.6"},"repository":{"type":"git","url":"https://github.com/samcday/node-fastcgi-stream.git"},"scripts":{"test":"[ -n \"$NO_COVERAGE\" ] && vows -- test/fastcgi.test.js --spec || istanbul cover vows -- test/fastcgi.test.js --spec"},"devDependencies":{"istanbul":"~0.3.2","vows":">= 0.5.6","stream-buffers":">= 0.2.1","duplex-stream":">= 0.1.0"},"gitHead":"cee83b716250973f2a4e2b64687b5a38889c38c6","bugs":{"url":"https://github.com/samcday/node-fastcgi-stream/issues"},"homepage":"https://github.com/samcday/node-fastcgi-stream","_id":"fastcgi-stream@0.1.3","_shasum":"af5f649e995508b970b3b6df45da94957bcc014b","_from":".","_npmVersion":"2.1.5","_nodeVersion":"0.10.32","_npmUser":{"name":"samcday","email":"me@samcday.com.au"},"maintainers":[{"name":"samcday","email":"sam.c.day@gmail.com"}],"dist":{"shasum":"af5f649e995508b970b3b6df45da94957bcc014b","tarball":"https://registry.npmjs.org/fastcgi-stream/-/fastcgi-stream-0.1.3.tgz","integrity":"sha512-fHrB+tycpCATfvPP4gI0OiMAP7VsWuBNbSacjwHHqTJSWLtvyBTD5h8GenwMEPZGicV1r637UooMboTQVNdfMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP1rsVtaWdyW6WMHtzL4pgLYDqinUlnLj5pPsCBF97VAIgTMKp1OQ7eV06RCvxyRkqkJN7seoZxMIX9fxND9gXPyI="}]}},"1.0.0":{"name":"fastcgi-stream","version":"1.0.0","license":"Unlicense","description":"Fast FastCGI Stream wrapper for reading/writing FCGI records.","keywords":["fcgi","fastcgi"],"author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"main":"./lib/index.js","engines":{"node":">= 0.10.0"},"dependencies":{"bufferlist":">= 0.0.6"},"repository":{"type":"git","url":"git+https://github.com/samcday/node-fastcgi-stream.git"},"scripts":{"test":"istanbul test -- _mocha","lint":"eslint ."},"devDependencies":{"chai":"^3.4.1","duplex-stream":">= 0.1.0","eslint":"^1.9.0","istanbul":"^0.4.0","mocha":"^2.3.4","stream-buffers":">= 0.2.1"},"gitHead":"9f50d333eeae94f9c18ff83c644897cb68e06714","bugs":{"url":"https://github.com/samcday/node-fastcgi-stream/issues"},"homepage":"https://github.com/samcday/node-fastcgi-stream#readme","_id":"fastcgi-stream@1.0.0","_shasum":"a526efb0a56eb23b76248081dd95b61eb5f6685c","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"samcday","email":"me@samcday.com.au"},"dist":{"shasum":"a526efb0a56eb23b76248081dd95b61eb5f6685c","tarball":"https://registry.npmjs.org/fastcgi-stream/-/fastcgi-stream-1.0.0.tgz","integrity":"sha512-esJ75qjKZmh+4lXuNCGqnNkMt2LW5aB6WVDkkVBRL/Igxr3uB+KJhIjSr4Cf875RJAXiJAQVK5B9PSdcRPg5Dg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhxLcvcUauyGPAz5/dkO7ShMAATtRnGBKbz+HmpVySKAiAe9wV04OHz2o3Fo/bHZtEau+d3UosCRlK9xMbRPGq22Q=="}]},"maintainers":[{"name":"samcday","email":"sam.c.day@gmail.com"}]}},"maintainers":[{"name":"samcday","email":"sam.c.day@gmail.com"}],"time":{"modified":"2022-06-17T23:39:37.708Z","created":"2011-02-23T01:45:00.174Z","0.1.0":"2011-02-23T01:45:01.184Z","0.1.1":"2011-03-24T07:05:29.251Z","0.1.2":"2014-05-28T04:45:39.748Z","0.1.3":"2015-02-06T12:42:29.019Z","1.0.0":"2015-11-17T06:54:50.733Z"},"author":{"name":"Sam Day","email":"sam.c.day@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/samcday/node-fastcgi-stream.git"},"readme":"# fastcgi-stream\r\n\r\n[![Build Status][badge-travis-img]][badge-travis-url]\r\n[![Dependency Information][badge-david-img]][badge-david-url]\r\n[![Code Climate][badge-climate-img]][badge-climate-url]\r\n[![Test Coverage][badge-coverage-img]][badge-coverage-url]\r\n[![npmjs.org][badge-npm-img]][badge-npm-url]\r\n\r\nRead & write FastCGI records from a node.js stream like a boss.\r\n\r\n## Quickstart\r\n\r\n```\r\nnpm install fastcgi-stream --save\r\n```\r\n\r\nThe FastCGI stream library has two main pieces, the `FastCGIStream` itself and the records that can be sent and received on it.\r\n\t\r\nThe `FastCGIStream` wraps an existing `Stream` to send/receive FCGI records on. 99% of the time this is going to be a `net.Socket`.\r\n\r\n```js\r\nvar fastcgi = require('fastcgi-stream');\r\n\r\nvar fcgiStream = new fastcgi.FastCGIStream(mySocket);\r\n\r\n// Send FastCGI records.\r\nfcgiStream.writeRecord(requestId, new fastcgi.records.BeginRequest(\r\n\tfastcgi.records.BeginRequest.roles.RESPONDER,\r\n\tfastcgi.records.BeginRequest.flags.KEEP_CONN\r\n));\r\n\r\n// Receive FastCGI records.\r\nfcgiStream.on('record', function(requestId, record) {\r\n\tif(requestId == fastcgi.constants.NULL_REQUEST_ID) {\r\n\t\t// Management record.\r\n\t}\r\n\telse {\r\n\t\tswitch(record.TYPE) {\r\n\t\t\tcase fastcgi.records.BeginRequest.TYPE: {\r\n\t\t\t\t// Request beginning. What role are we being asked to fulfill?\r\n\t\t\t\tif(record.role == fastcgi.records.BeginRequest.role.RESPONDER) {\r\n\t\t\t\t\t// Etc...\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n```\r\n\r\n## Records\r\n\r\nAll record objects live in the `fastcgi.records` namespace. Each record will now be listed. The listing will detail the constructor and parameters each record contains.\r\n\r\nConstructor args are never mandatory, you can pass as many or as few arguments as you like.\r\n\r\n### BeginRequest\r\n\r\n\tvar record = new fastcgi.records.BeginRequest(role, flags);\r\n\t\r\n* `.role` - the role being requested. Possible roles as follows:\r\n\t* `fastcgi.records.BeginRequest.roles.RESPONDER`\r\n\t* `fastcgi.records.BeginRequest.roles.AUTHORIZER`\r\n\t* `fastcgi.records.BeginRequest.roles.FILTER`\r\n* `.flags` - additional flags for the request. There is only one in the specification:\r\n\t* `fastcgi.records.BeginRequest.flags.KEEP_CONN`\r\n\t\r\n### AbortRequest\r\n\r\n\tvar record = new fastcgi.records.AbortRequest();\r\n\t\r\n### EndRequest\r\n\r\n\tvar record = new fastcgi.records.EndRequest(appStatus, protocolStatus);\r\n\t\r\n* `.appStatus` - application return status code\r\n* `.protocolStatus` - protocol return status code, can be one of the following:\r\n\t* `fastcgi.records.EndRequest.protocolStatus.REQUEST_COMPLETE`\r\n\t* `fastcgi.records.EndRequest.protocolStatus.CANT_MPX_CONN`\r\n\t* `fastcgi.records.EndRequest.protocolStatus.OVERLOADED` \r\n\t* `fastcgi.records.EndRequest.protocolStatus.UNKNOWN_ROLE`\r\n\t\r\n### Params\r\n\r\n```js\r\nvar params = [\r\n\t['Name', 'Value'],\r\n\t['AnotherName', 'AnotherValue']\r\n];\r\n\r\n// Params is optional.\r\nvar record = new fastcgi.records.Params(params);\r\n```\r\n\r\n`.params` - an array of name/value array pairs\r\n\r\n### StdIn/StdOut/StdErr/Data\r\n\r\nAll of these records take the same constructor and have the same properties.\r\n\r\n```js\r\nvar body = 'String';\r\nvar record = new fastcgi.records.StdIn(body);\r\n\r\n// .. or ..\r\n\r\nvar body = new Buffer('Contents.');\r\nvar record = new fastcgi.records.StdIn(body);\r\n```\r\n\t\r\n### GetValues\r\n\r\n```js\r\nvar values = ['Name', 'AnotherName'];\r\nvar record = new fastcgi.records.GetValues(values);\r\n```\r\n\t\r\n`.values` - array of values being requested\r\n\r\n### GetValuesResult\r\n\r\n```js\r\nvar result = [\r\n\t['Name', 'Value'],\r\n\t['AnotherName', 'AnotherValue']\r\n];\r\n\r\nvar record = new fastcgi.records.GetValuesResult(result);\r\n```\r\n\t\r\n`.values` - array of name/value pairs representing the result.\r\n\r\n### UnknownType\r\n\r\n```js\r\nvar record = new fastcgi.records.UnknownType(type);\r\n```\r\n\t\r\n`.type` - the type of record that was not recognized.\r\n\r\n\r\n# License\r\n\r\nnode-fastcgi-stream is free and unencumbered public domain software. For more information, see the accompanying UNLICENSE file.\r\n\r\n[badge-travis-img]: https://img.shields.io/travis/samcday/node-fastcgi-stream.svg?style=flat-square\r\n[badge-travis-url]: https://travis-ci.org/samcday/node-fastcgi-stream\r\n[badge-david-img]: https://img.shields.io/david/samcday/node-fastcgi-stream.svg?style=flat-square\r\n[badge-david-url]: https://david-dm.org/samcday/node-fastcgi-stream\r\n[badge-npm-img]: https://img.shields.io/npm/dm/fastcgi-stream.svg\r\n[badge-npm-url]: https://www.npmjs.org/package/fastcgi-stream\r\n[badge-climate-img]: https://img.shields.io/codeclimate/github/samcday/node-fastcgi-stream.svg?style=flat-square\r\n[badge-climate-url]: https://codeclimate.com/github/samcday/node-fastcgi-stream\r\n[badge-coverage-img]: https://img.shields.io/codeclimate/coverage/github/samcday/node-fastcgi-stream.svg?style=flat-square\r\n[badge-coverage-url]: https://codeclimate.com/github/samcday/node-fastcgi-stream\r\n[node-docs-stream]: http://nodejs.org/api/stream.html\r\n","homepage":"https://github.com/samcday/node-fastcgi-stream#readme","keywords":["fcgi","fastcgi"],"bugs":{"url":"https://github.com/samcday/node-fastcgi-stream/issues"},"license":"Unlicense","readmeFilename":"README.md"}