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

dpe

v1.4.33

Published

Основное функциональное назначение деплой и управление запущенным кодом в сети узлов запущенных на различных платформах, таких как window, unix, android, ios, chrome app, chrome plugin. Поддерживает создание функций на языках JavaScript, Python, Java, C

Downloads

148

Readme

DPE Framework - Data Process Engine

Основное функциональное назначение деплой и управление запущенным кодом в сети узлов запущенных на различных платформах, таких как window, unix, android, ios, chrome app, chrome plugin. Поддерживает создание функций на языках JavaScript, Python, Java, C++.

Архитектурно состоит из следующих частей:

  1. Хост-сервис - обвязка для запуска и управления фоновым сервисом который содержит в себе ядро и загруженные приложения
  2. Ядро - набор связанных модулей исполняющихся в общем контексте обеспечивающих базовые функциональные возможности сервиса и основной жихненный цикл приложения
  3. Приложение - зависимый от конкретного ядра набор функций определяющих бизнес-логику и выполняющих какие-то полезные действия
  4. Компонент - составная часть ядра и приложений, по сути каждая отдельная функция которая может быть вызвана из вне
  5. Сигнал - запрос на исполнение функций в системе, представляет собой JSON объект, в котором каждый ключ это имя функции которую необходимо вызвать. Также содержит мета-данные начинающиеся с префикса _ и теги начинающиеся с префикса @
  6. Процесс - набор функций исполняющихся в определенном порядке для достижения некоторой цели в общем контексте исполнения
  7. Ресурс - объект данных в общем контексте процесса

Как начать

  1. Установить глобально npm пакет с фреймворком

    sudo npm install -g dpe
  2. Сконфигурировать сервис в системе (вызвать в любой директории)

    dpe service configure
  3. Добавить зависимости

    dpe app add -c -g https://domain.com/path/to.git name1
    dpe app add -a -f ../path/to/directory/dpe.json name2
    dpe app add -m -n npm-module-name name3

    Опции: -c, --core добавляет функции с уровнем исполнения ядра (возможно все) -m, --module добавляет функции с уровнем исполнения модуля (нормальный) -a, --app добавляет функции с уровнем исполнения приложения (песочница)

    -g, --git получить зависимость из GIT, должен содержать dpe.json в корне -f, --file загрузить локально dpe.json -n, --npm получить из NPM

  4. Запустить сервис с выбранными зависимостями

    dpe service start name1 name2
  5. Создать приложение в требуемой директории

    dpe init
  6. Создать *.js файл с функцией

    touch test.js

содержимое test.js

```javascript
module.exports.A = function (env, args, callback) {
    console.log('HELLO WORLD!');
    callback(null, true);
};
```
  1. Добавить его в dpe.json в этой же директории, файл должен выглядеть следующим образом

    {
        "test": {
            "require": "./test.js"
        }
    }
  2. Добавить приложение в сервис (исполнять в директории приложения)

    dpe app add -a -f ./dpe.json
  3. Вызвать функцию

    dpe app call test.A

FAQ

  1. Как передать аргумент в функцию - dpe app call test -a "argName=argValue"

  2. Как определить порядок вызова функций в сигнале

    {
        "A": {
            "@before": "B"
            "arg1": "test"
        },
        "B": {
            "@target": true,
            "arg2": 100
        }
    }

В данном случае мы помещаем результат исполнения функции в одноименный ресурс, а после читаем его при следующем вызове. Функции содержащие в аргументах ресурсы не будут исполнены до тех пор пока ресурс не будет определен.

  1. Как получить состояние процесса

    dpe app call process.state -a "pid=..."
    dpe app call process.list
  2. Как остановить исполнение процесса

    dpe app call process.kill -a "pid=..."