Giter Club home page Giter Club logo

genesis.pinf.org's Introduction

pinf

Status: DEV

The pinf command implementation used for hoisting PINF-based programs. NodeJS is used as the runtime engine for pinf.

What is PINF?

PINF is a set of specific tools and conventions combined to create a platform that allows for the creation of portable programs implemented by orchestrating diverse packages and services contributed and operated by a distributed community. The pinf command is an application used to call PINF-based programs.

PINF enables collaboratively built systems of arbitrary complexity.

Setup

Requirements:

  • OSX >= 10.8
  • NodeJS >= 0.10
  • git >= 1.8

Install:

sudo npm install -g pinf --tag pre

Test:

npm install
export DEBUG=debug  # Optionally enable debug logging
export TEST=02      # Run only the matching (prefix) test group
npm test

Usage

Calling local PINF Programs (see: 01-SimpleCommandLinePiping):

# Output Redirection
$ pinf say 'Fred:' > fred.txt && pinf color 36 < fred.txt | pinf append ' hello'
> Fred: hello

# Streaming
$ pinf send 3 Hello | pinf color 36 | pinf collect
> collected: Hello
> collected: Hello
> collected: Hello

Calling cloned PINF Programs (see: 02-SimpleProvisionFromGithub):

# Clone once and use cached tag on every subsequent run
$ pinf github.com/pinf/pinf/v1.0.0-pre.3?test/01-SimpleCommandLinePiping/programs/say Hello
> Hello

# Clone once and fetch from branch on every subsequent run
$ pinf github.com/pinf/pinf/master?test/01-SimpleCommandLinePiping/programs/say Hello
> Hello

# Automatically buffer streams while provisioning programs
$ pinf github.com/pinf/pinf/v1.0.0-pre.3?test/01-SimpleCommandLinePiping/programs/send 3 Hello \
$ | pinf github.com/pinf/pinf/v1.0.0-pre.4?test/01-SimpleCommandLinePiping/programs/color 36 \
$ | pinf github.com/pinf/pinf/v1.0.0-pre.3?test/01-SimpleCommandLinePiping/programs/collect
> collected: Hello
> collected: Hello
> collected: Hello

TODO

Integrate

genesis.pinf.org's People

Contributors

cadorn avatar

Watchers

 avatar  avatar

genesis.pinf.org's Issues

Port to Rust

Port the bash and nodejs logic require to boot to Rust. Use NodeJS only where needed.

Once this is done, port the Rust logic to Pure JavaScript and an adapter for NodeJS.

Define `pinf.json` file characteristics

  • Preserve line order (i.e. object property indexes)
  • Allow multi-line strings with auto-pad-stripping
  • Use @context to define properties & schema (json-ld based)
  • Use @extends to pull in outside descriptors
  • Use @translocate to copy config sections from other descriptors into same place in this descriptor

Why does `/etc` get created?

Something creates an etc folder at the root of the project. Stop this from happening. Likely need to set home dir of some command call to a different path?

Use JSON-LD to model descriptors

Use http://json-ld.org/ to model the pinf-it normalized descriptors:

cc @kriskowal I am going to try and use JSON-LD to hold configs in the virtual system and write converters to and from this format. It should be trivial to integrate the JSON-LD model into the layered filesystem and feed properties on the prototype chain of an object. I am going to explore some minimal extensions to JSON-LD + JSON-SCHEMA that will add support for mapping to JS code bundles that can be executed when processing schemas or when data passes through it ... This will be the foundation of the meta system that maps in every aspect used within a given context and can attach tooling components to API responses.

Virtual Holographic Nodal Platform

None of these words communicate. I suspect each of them would require a paragraph of explanation.

Perhaps you mean:

Tool(s) for sharing software development workflows that involve flexible dependency management and the orchestration of virtual machines.

Move 'expand' to github.com/pinf/pg.expand

Create github.com/pinf/pg.expand in the like of pg.condense and use in genesis.pinf.org.

This will make the expansion process modular and runnable from outside using pg.expand which will not only run sm.expand but also resolve configurations and setup the system ready for booting using boot or other referenced bootstrapper.

Use specific terms only to allow for easy comprehension and application

PINF.Genesis being an implementation of some logical primitives that are highly applicable to many problems; the terminology used to describe PINF.Genesis must be as applicable as possible.

i.e. The terminology must be consumable by many audiences allowing them to apply the concepts and implementation to many problems as easily as possible.

i.e. The terminology must be IMMEDIATELY COMPREHENSIBLE.

All docs must only use specific terms to describe what something is and what it does and NEVER USE GENERAL TERMS.

Generality for a specific domain is presented ONLY IN SYSTEMS built using PINF.Genesis! The first such system acting as the first reference implementation is https://github.com/devcomp/devcomp.org

$context: #4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.