npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

synchronous-server

v1.0.1

Published

Low level synchronous server

Downloads

7

Readme

Synchronous-Server

License

Overview

The synchronous-server package is a Node.js module that uses Rust crates to allow the Node.js server to run synchronously. The purpose of this package is to provide a synchronously running server-side implementation of Node.js for your specific needs, for example, safe modification of the same file by multiple clients when there are asynchronous operations between read and write.

Requirements

To use the synchronous-server package, you need to ensure the following:

  • Node.js is installed on your system

Installation

Install the synchronous-server package using npm:

npm install synchronous-server

Usage

After installing the package, you can use it in your Node.js application as follows:

const path = require("path");
const { startServer } = require("synchronous-server");

// Create an abs path to worker.js file
const workerPath = path.resolve(__dirname, "worker.js");

const port = 4001;
startServer({ workerPath, port }, () => {
  console.log("Listen:", port);
});

Create file worker.js as follows:

const { request, response } = require("synchronous-server");

// Wrap to async to use await
(async () => {
  // Get request
  const req = request();
  console.log(`method: ${req.method}, url: ${req.url}`);
  // An asynchronous operation will be performed synchronously
  const res = await new Promise((resolve) => {
    setTimeout(() => {
      resolve({ hello: "world", body: req.body });
    }, 0);
  });
  // Send response
  response(res);
})();

API Reference

startServer({port: number, workerFilePath: string}, () => void)

This function starts the synchronous server on the specified port.

  • port: The port number on which the server should listen.
  • workerPath: The absolute path to the request handler file.

License

This package is distributed under the MIT License. See the LICENSE file for more information.

Contributions

Contributions to the synchronous-server package are welcome. Feel free to submit issues or pull requests on the GitHub repository.

Support

For any questions or support with the synchronous-server package, please open an issue on the GitHub repository.

Roadmap

  • Support for advanced configuration options
  • Performance optimization

Versioning

This package follows the Semantic Versioning (SemVer) scheme. See the CHANGELOG for release history.