WORK IN PROGRESS
Phenyl is a series of JavaScript libraries for both client-side and server-side, focusing on State Synchronization over Environments(SSoE).
ServerSide Phenyl provides an API server like MBaaS(Mobile Backend as a server). ClientSide Phenyl provides Redux module system. These two environments, State are Synchronized by various ways.
TBD
TBD
TBD
TBD
TBD
- phenyl-rest-api: REST API logic. Core part of Phenyl.
- phenyl-http-server: Simple HTTP Server to host PhenylRestApi.
- phenyl-express: Express middleware to run PhenylRestApi on it.
- phenyl-websocket-server: WebSocket server to emit update operations of entities.
- phenyl-mongodb: MongoDB client.
- phenyl-lambda-adapter: Helper to run PhenylRestApi on AWS Lambda.
- phenyl-memory-db: volatile memory DB for local mocking.
- phenyl-http-client: Client to PhenylRestApi.
- phenyl-redux: State synchronization among Phenyl CentralState(server) and LocalState(client) using Redux.
- phenyl-websocket-client: WebSocket client to listen to entities's update.
- phenyl-interfaces: All types of Phenyl family are defined here.
- phenyl-standards: Provides advanced features.
- phenyl-utils: (Almost internal) Utility functions in Phenyl family.
- phenyl-state: (Almost internal) Entity state Reader/Writer.
- phenyl-http-rules: (Almost internal) Translate HTTP Request/Response into Phenyl RequestData/ResponseData.
- power-crypt: (Almost internal) Encrypt string.
- power-assign: Empowered Object.assign().
- power-filter: Filter objects in array by MongoDB-like FindOperation.
- oad-utils: Collection of utility functions for OAD.
- mongolike-operations: Define Flow interfaces of MongoDB-like operations.
- is-restorable: Checking instance's restorablity.
// @flow
import PhenylHttpServer from 'phenyl-http-server/jsnext'
import PhenylRestApi from 'phenyl-rest-api/jsnext'
import { connect, createEntityClient } from 'phenyl-mongodb/jsnext'
const connection = await connect('mongodb://localhost:12345')
const client = createEntityClient(connection)
const phenylRestApi = new PhenylRestApi({ client })
const server = new PhenylHttpServer(http.createServer(), { restApiHandler: phenylRestApi })
server.listen(8080)
TBD
Apache License 2.0