
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
hurp-http-server
Advanced tools
Async module wrapper for native Node.js http.Server with graceful shutdown.
More about Hurp and how to use it:
https://github.com/yaroslav-korotaev/hurp
$ npm install hurp-http-server
import Hurp from 'hurp';
import HttpServer from 'hurp-http-server';
import { Log } from 'hurp-types';
export interface Options {
log: Log;
}
export default class App extends Hurp {
public readonly server: HttpServer;
constructor(options: Options) {
super();
const server = new HttpServer({
log: options.log,
handler: (req, res) => res.end('hello, world'),
listen: {
host: 'localhost',
port: 3000,
},
});
this.server = this.use(server);
}
}
import pino from 'pino';
import HttpServer from 'hurp-http-server';
async function main() {
const log = pino();
const server = new HttpServer({
log,
handler: (req, res) => res.end('hello, world'),
listen: {
host: 'localhost',
port: 3000,
},
});
// Start listening
await server.init();
// Shutdown gracefully
// await server.destroy();
}
Logger instance must be compatible with that interface:
interface Log {
child(bindings: { [key: string]: any }): Log;
info(message: string): void;
}
This approach is inspired by Bunyan. You can use a compatible logger like pino directly or write a simple wrapper around any other you like.
Options
import { Options } from 'hurp-http-server';
An object, HttpServer
constructor options.
tag?: string
Will be used as module tag and passed as tag
field in bindings to child logger. Optional, value http-server
used by default.
log: Log
Base logger used to create child logger for new HttpServer
instance.
server?: http.Server
Optional native Node.js http server instance. If undefined, a new one will be created by default.
handler: (req: http.IncomingMessage, res: http.ServerResponse) => void
Request handler, will be attached to wrapped native http server instance as request
event listener.
listen?: net.ListenOptions
Options will be passed to listen()
method of http server instance.
HttpServer
import HttpServer from 'hurp-http-server';
A class, async module wrapper for native Node.js http server.
constructor(options: Options)
Creates a new HttpServer
instance.
options: Options
- instance options
async init(): Promise<void>
Initializes the http server by opening a port. Will throw an error in a case with error
event from underlying native http server instance.
async destroy(): Promise<void>
Closes listening port and waits for pending requests. All keep-alived connections with no pending requsts will be closed immediately.
FAQs
Hurp module wrapper for Node.js http[s].Server
We found that hurp-http-server demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.