Skip to content

.NET library, implementing an advanced custom state-machines mechanic for your code with custom messages system block

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.md
Notifications You must be signed in to change notification settings

Falcion/Zustandsmaschine

contributors stargazers forks issues commit-activity

icon

Zustandsmaschine

One way of sequencing the code.
«Explore the docs»
Contribute to us / View tags / Report a bug

About the project

In the world of science, programming and formulae, there is the concept of finite automaton1, so called finite-state machine or just state machine — the abstract machine that can be in exactly one of a finite number of states at any given time — and it is the only purpose of this project's existence.

And this state machine, can provide to you the solutions for your task at the same time in a limited way, but also infinite potential — abstract problems call for abstract solutions, this is the philosophy of this project.

Built-with

Project is created and “written” with help of:

JAVASCRIPT
TYPESCRIPT
DOTNET

Getting started

Before asking questions, read this block because here is all the primary information on the project, which can answer your future not-yet asked questions.

Prerequisites

For usage of this project just as it is for your repository, there is no direct requirement for Node.js.

But, for contributing to this project, we highly recommending following those prerequisites:

[^]

Installation

Permission is granted for free use in any of your products.

If you want to use this project, there are multiple ways to download-and-use this project: two “official” and direct, so, let's start from simplest official path:

Process of installation within NUGET package manager in VS:

  1. Open project in IDE with .NET native-support;
  2. Use the specified package manager in your IDE (in VS - find this in upper hotbar):
    if we talking about VS, load project via solution explorer and then proceed with "Project → Manage Nuget Packages" and then navigate through UI with help of:
    https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio/
  3. Write the name of this package into packages browser;
  4. download the required for you version through the menu and package is ready-to-use.

If you are interested in importing DLL of this package into your project, read this article:
https://learn.microsoft.com/en-us/dotnet/standard/native-interop/native-library-loading/

Guidelines for direct-installation way:

  1. Download last tag on project's repository, for the last ZIP-tarball link provided below:
    download latest release
    • or just download the source-code through "Code → Download ZIP (or any option that you want)", and proceed to the next step;
  2. Within downloaded ZIP (or project), clone everything and paste to the directory of your project via "copy+paste" procedure;
  3. Add namespace as dependency for your own namespaces (in case if you cloned the source into your project) and the project is ready-to-use.

Guidelines for installation of source code of this project:

  1. Clone the repository with any form of app which supports git (or CLI of this site), guide is attached:
    https://www.howtogeek.com/451360/how-to-clone-a-github-repository/
  2. Open it with any suitable for you editor and feel free to customize, update and/or contribute to this project2.

[^]

Usage

As it was stated in introduction about the project, this solution provides very abstract and hard-to-use (advanced) interpretation of state machine and it could be used in alike abstract code representations, but for basics:

  • Staging any function, method (and requests which are represented by them) with states and shifts;
  • Interpretating the steps of any code and configs within advanced internal analytics engine inside the stateflows assemblers;
  • Staging not just functions and methods, but entire logic and messaging system via state-usage logic of project.

For usage instructions:

  1. Download and install this project into your's one with help of installation guides3;
  2. Now, you can continue to work on your project with this package's data in it.

Before preparing to contribute on the project, initialize entire repository via initialize and prepare commandlets of NPM (through either bash or powershell):


# Installing every dependency for package:
npm i
# Using prepare script for this repository:
npm run prepare

[^]

Roadmap

  • Create basic repository infrastructure for this project, including:
    • basic .MD documentations and dealings stuff (like README, LICENSE and etc.);
    • scripts and actions within CI/CD for supporting high-quality of this project;
  • Write and publish the demo (pre-release) version of project, including the most basic logic of this one.
  • Write the documentation for this demo-project and:
    • make it one as archive for technical docs purposes (hyperlinking directive);
  • Refactor and prepare for “advancing” the project's logic and write an entire functionality of it.
  • Refactor and prepare for “advancing” the project's documentation and publish it via the archive.

[^]

Contributing

Contributions are what make open source community such an interest place to be in, so any form of contribution are greatly appreciated.

If you think that you can help this project become better but think its not so important/realizable in the current situtation or for a full contribution, use issues page, otherwise there is a guideline and policy for contributing.

If you want to contribute to this project, please, read contributioning policy and commit convention, this repository works with CLA, commits convention and on automated deployment system4.

For one-single file contributioning, use a more quicker way without forking the repository through website.

More about it in this article:

[^]

License

Project thanks the Electron.js and Angular.js for their amazing repository scripts and entire infrastructure, which partially were imported to this repository.

Project itself is being distributed under the MIT License — see the file for more specified information.

[^]

Contact

For any legal purposes, you can contact developer/maintainer through its e-mail:

If the developer/maintainer didn't answered, or you have other questions in nature, you can use issues page on this repository via specified templates or indirect self-written issue.

[^]

Acknowledgments

[^]

Footnotes

  1. more about it here in the article

  2. for contributing policy, see — CONTRIBUTING.md

  3. .../#installation

  4. read the files of commiting convention policy and contributioning policy

About

.NET library, implementing an advanced custom state-machines mechanic for your code with custom messages system block

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.md

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published