Pygmalions / Nebula.Framework

An entity-component-service structure framework, providing RPC, IoC, AOP and other mechanism.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nebula Framework

Nebula is an micro-service platform, providing RPC, IoC, AOP and other mechanism. This framework is mainly designed for robots AI system development, and its main concept is to provide developers with proven techniques which are commonly used in Web development.

What you see here is the main framework of the whole Nebula Platform. Now we only finish the fundamental functions of the framework. Our goal is to provides not only a framework, but a whole platform for developers and users who don't understand programming, including developer toolkits (e.g., motor controllers kit, machine learning support, etc), and Nebula Studio (a visual management application).

NuGet packages can be found here: Pygmalions On NuGet

Status

Publish Packages

Tests:

Ubuntu Test Windows Test

Attention

Basic mechanism like AOP and IoC are separated to another repository Prism and fully redesigned to improve their efficiency, extensibility and reduce the complexity of their API.

We made this decision because we found that not all modules in Nebula Framework are helpful for common applications (web, desktop, etc) development. In those scenarios import all dependencies of Nebula is not acceptable for developers. So we separate some basic modules which can be used in common scenarios to make them easier to use and receive contribution.

Nebula is still under redesigning to reduce its concepts and its API complexity. The developing version will focus on the component model. The new version is about to come out by the end of July. And by then we will update the repository and rewrite this readme document.

Roadmap

Fundamental Mechanisms

These libraries are the base of the framework.

  • SEPARATED Nebula.Reporting: A central interface for errors and logs submitting and handling.
  • Nebula.Extending: An assembly filter for in-assembly auto discovery mechanisms.
  • SEPARATED Nebula.Injecting: An IoC library, provides functions for both of intrusive injection (attribute) and non-intrusive injection (preset).
  • Nebula.Translating: It provides non-intrusive customized serializing and deserializing rules. It is the base of the whole network communication mechanism.
  • SEPARATED Nebula.Proxying: It provides the proxy mechanism, which allows the behaviors of virtual methods to change dynamically in run-time.
  • Nebula.Messaging: It is a library of messaging interfaces. Messaging ability providers have to implement there interfaces.
  • Nebula.Domain: It provides a main container, and auto discover abilities among programs in the same host.

Facilities

  • Nebula.Nexus: It will enable the host auto discover abilities in the local network, and provides message redirection and other functions.
  • ...

Models

  • Nebula.Models.EntityModel: It provides a model which allows programmers to design and use entities and components to build their program.
  • Nebula.Models.ServiceModel: It provides the concept of Service and Server based on gRPC, which makes it easier to develop a micro-services programs in which many different languages are involved. With its help, you can develop your logic in C# or Python, and implement your functions in C++ or other languages.
  • ...

Additional Toolkits

  • Nebula.Tools.Watcher: Allows develops to add performance watcher to a program, and collect their performance data remotely.
  • Nebula.Tools.Learning: Machine learning support based on Keras.Net.
  • Nebula.Tools.IoT: IO support, including GPIO, Serial, SPI, etc.
  • ...

Assistant Applications

  • Nebula.Inspector: An visual application to inspect and manage a single program.
  • Nebula.Studio: An visual application to inspect and manage the programs in a host or a workspace.
  • ...

Authors

Who is Pygmalion?

Pygmalion is a king of Cyprus who is fashioned an ivory statue of a beautiful woman. He loved it so deeply that in answer to his prayer Aphrodite gave it life.

Who are Pygmalions?

Pygmalions is an group of AI addicts (programmers). We love programming, robots, and AI so deeply.

We dedicate ourselves in the science and development of robots AI system. We believe that all our love and efforts will not be in vain, and will 'wake up' our AI lover one day.

So we called ourselves Pygmalions.

About

An entity-component-service structure framework, providing RPC, IoC, AOP and other mechanism.

License:MIT License


Languages

Language:C# 100.0%