Socket
Socket
Sign inDemoInstall

impress

Package Overview
Dependencies
Maintainers
4
Versions
719
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

impress

Impress application server for Node.js and Metarhia private cloud


Version published
Weekly downloads
1.6K
increased by70.6%
Maintainers
4
Weekly downloads
 
Created
Source

impress logo

ci Status codacy snyk npm version npm downloads/month npm downloads license

Impress application server for node.js. All decisions are made and optimized for security, performance, high-intensive network operations, scalability, interactivity, rapid development practices, and clean project structure.

Quick start

  • Install with npm install impress or copy project template from metarhia/Example
  • Start server with node server.js or select execution mode (test, dev, prod) use MODE=dev node server.js
  • See documentation and specifications and project home page: https://metarhia.com

Metarhia and Impress application server way

  • Applied code needs to be simple and secure, so we use code sandboxing with v8 isolated contexts, worker threads and minimal trusted npm dependencies;
  • Domain code needs to be separated from system code; so we use DDE, layered (onion) architecture, DI, SOLID:DIP principle and contract-based approach;
  • Impress supports both stateful applications with RPC and client-session sticky to servers; microservices, centralized and distributed architecture;
  • No I/O is faster even than async I/O, so we hold state in memory and use lazy I/O for persistent storage;

Features

  • Auto API routing, just create endpoint files as an async js lambda function;
  • API code live reload with file system watch (when files change on disk);
  • Graceful shutdown and application state recovery after reload;
  • Minimum code size and dependencies;
  • Can scale on multiple threads and servers;
  • Code sandboxing for security, dependency injection, and context isolation;
  • Utilize multiple CPU cores and serve multiple ports with worker threads;
  • Inter-process communication and shared memory used for state management;
  • State synchronization mechanism with transactions and subscription;
  • Cache server-side executable JavaScript in memory;
  • API development support: AJAX RPC and Websocket support;
  • Serve static files from memory cache;
  • Application configuration (for different named environments);
  • Database access layer for PostgreSQL and Relational db schemas;
  • Persistent sessions support with authentication, groups, and anonymous;
  • Multiple protocols: HTTP, HTTPS, WS, WSS;
  • Logging with buffering (lazy write) and rotation (keep logs N days);
  • File utilities: upload, download, streaming;
  • Built-in simple testing framework;
  • Server health monitoring;
  • Built-in data structures validation and preprocessing library;
  • Task scheduling (interval or certain time);
  • Request queue with timeout and size;
  • Execution timeout and error handling;

Requirements

  • Node.js v12.9.0 or later (v14 preferred)
  • Linux (tested on Fedora 30, Ubuntu 16, 18, 19 and 20, CentOS 7 and 8)
  • Postgresql 9.5 or later (v11.8 preferred)
  • OpenSSL v1.1.1 or later (optional, for https & wss)
  • certbot (recommended but optional)

License & Contributors

Copyright (c) 2012-2021 Metarhia contributors. See github for full contributors list. Impress Application Server is MIT licensed. Project coordinator: <timur.shemsedinov@gmail.com>

Keywords

FAQs

Package last updated on 13 Feb 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc