Code Monkey home page Code Monkey logo

zorro-core's Introduction

Zorro core

Zorro core is the main repository of the zorro ecosystem. It is responsible for sending code execution request to various processors like Python, Nodejs, even Unreal or Nuke.

What does it do

Zorro is a framework used to create user friendly tools. There is different types of tools, they are declared via plugins and they represent a functionality exposed to the user. They are always bound to a context, when a tool is triggered a context must be selected with it. Zorro lets you create your own tools that will pilot multiple applications, it serve as a comunication hub between all your softwares to synchronize operations that you will create.

The types of tools

Tools can be nested, there is higher level type of tools than others

  • command: A command is the smallest type of tool, it is rarely used alone and define a piece of code to execute on a given processor.
  • action: Used to group and organise commands into a dependency graph and execute it sequencially.
  • widget: A group of graphical components bound to a command, used to build interactive GUI
  • hook: Used to attach commands or actions to a particular event.

How does it works

When creating your plugins you will define:

  • tools: That will register functionalities exposed to the user
  • processors: That will define an application able to communicate with zorro

Zorro is using the grpc protocol to communicate with processors. When a tool will be executed, zorro will start the nessesary processors to execute the tool and will communicate with them to request execution. The processors can understand each other thanks to protocol buffers wich serves as a common data format for all the processors

Get started

CI / CD

Unit tests

First make sure you fetched the git submodules (used by some tests)

git submodule init --remote

To run the unit test use:

go test ./...

You might want to use a unit test formater like gotestsum

gotestsum --format dots

Formater

The formater used is gofumpt Make sure to format your code either by configuring your IDE or executing

gofumpt -l -w .

zorro-core's People

Contributors

acedyn avatar

Stargazers

 avatar Pavel Rusakov avatar François Desrichard avatar

Watchers

 avatar

zorro-core's Issues

create local scheduler

  • Create the scheduler query struct (protobuf)
  • Create the grpc server (different package)
  • Create the local scheduler's grpc endpoints
  • Create the CommunicateCommands endpoint

create the client pool system

  • Create the client query struct (protobuf)
  • Create the client pool
  • Implement the client instantiation
  • Implement the client closing (ref count)

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.