Giter Site home page Giter Site logo

katolus / functions Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 1.0 1.79 MB

A utility package for building, running and deploying serverless functions for the local and the cloud.

Home Page: https://katolus.github.io/functions/

License: MIT License

Python 99.22% Shell 0.78%
python docker faas-cli gcp-cloud-functions faas hacktoberfest

functions's Introduction

Hi there ๐Ÿ‘‹. I'm Katolus.

I enjoy building tools to help me satisfy my curiosity ๐ŸŒ• and experience ๐ŸŒ€.

I'm interested in Data and Machine Engineering, IoT devices and human behaviour.

Go-to stack involves:

  • Python as the programming language of choice.
  • GCP as a hosting platform of choice.
  • VSCode as the editor.
  • Ubuntu as the OS.

I'm currently ๐Ÿ‘ทโ€โ™‚๏ธ working on:

  • Home Assistant setup for a local network.
  • A Python package called functions that is built to interface with major FaaS offerings.

I'm currently ๐Ÿ˜‘ researching:

  • Open Source projects and communities.
  • Computer Architecture, Internet Protocols and Encryption.
  • Electrical Circuits and Material Science.
  • Statistics.

You can ๐Ÿ’ฌ ask me questions.

I would love to collaborate on projects resolving around health or physics.

You can reach me by writing me an ๐Ÿ“ซ email or LinkedIn message.

You can also visit my website for more information about projects, skills and not updated ๐Ÿ‘จโ€๐Ÿ’ป portfolio websites.

Have a good ... no have a great day ๐Ÿ’™.

functions's People

Contributors

deepsource-autofix[bot] avatar deepsourcebot avatar dependabot[bot] avatar katolus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

functions's Issues

Add a wrapper around the base of the app

We need to add this scope to manage additional layers of the application.

The wrapper should handle any error falling under the registered errors, so a wrapper around the command and callback methods need to be added to avoid adding that in every bit of code.

Add a command to display the status of a given function

Add support for displaying a status of a function.

The status should work for any function within the repository of functions (logic to be created).

The information in there should present data like:

  • Is it started/deployed?
  • Maybe how long has it been running for?
  • How to access it?

Write `config` command proposal

Add a proposal for adding the config command.

The command should include options of displaying the current configuration file and consider the possibility of disabling console colour enhancements.

Add a `road map` document.

Add a document about:

  • the direction and visions in which project might move in the future.
  • ideas for features that would be great to implement like
    • add support for AWS
    • custom commands
      ...

Enhance the `remove` command

  • Add autocomplete to command invocation
  • Catch exceptions on removing functions that don't exist
  • Handle the case of removing the function when it is still running
  • Make sure that the function removes all the resources and does not leave any artefacts

Each of these points can easily be an issue on its own.

Trail the Golem in search for a possible match.

The Golem Network fosters a global group of creators building ambitious software solutions that will shape the technological landscape of future generations by accessing computing resources across the platform.

It would be good understand how it fits into this project and if it can be utilised to serve FaaS content.

Add `deprecated` and `development` decorators.

  • add a deprecated decorator that would notify the user that a given functions is deprecated.
  • add a development decorator that would only be available for usage in a development mode.

Enhance `list` method

  • Add support for running and stopped.
  • Maybe state like gcp-deployed would be a good idea.

Suggestions for states are also welcomed.

Add a command to cleanse all created docker resources

This is more of a development feature, but it would be great to be able to remove any package related resources to avoid polluting any of the existing docker scopes.

Considered options:

  • using docker system prune with appropriate filters (on package labels)
  • using relevant pruning options for containers and images separately

Configure PR template

Research the PR template documentation from Github:

Include information that is helpful to review a PR.

  • Testing instructions
  • Issue that the PR is fixing for automation
  • Extra steps required

Plus anything that would be helpful when creating a comprehensive change requet.

Find a better solution for LocalFunctionPath implementation

The implementation of that validation class was experimental. It has low readability and should be avoided.

Need to figure out a way of expressing the same restrains but provide readability in a context of a type.

Avoid mixing types with validations.

Tackle `docker` module enhancements

  • Enhance types
  • Look into better options on creating a global object for the docker client.
  • Add verbose logging to the workings of containers
  • #134 - Moved out of the scope of this issue.
  • Tackle all the TODO comments and items

- Add a function to retrieve a function config just from its name (Confirm). - Not idea what was this about.

Depends on #35.

Configure issue templates

Research the resources that Github has put on issues in order to understand what is available.

Create an issue template for

  • new features
  • enhancements
  • bugs

Each of these should be independent and should hold a comprehensive but not overwhelming template of information.
Information like the package version, operating system, problem description etc...

Enhance `autocomplete` module

This is out is about enhancing the autocomplete module works by:

  • Filter out functions that are already running.
  • Find deployable functions, perhaps all the unctions that are present in the config?
  • Update the complete services if still needed by code.

Enhance `run` command

Each of these should be a separate issue.

  • Handle a case of running a function that does not exist/ has no image.
  • Handle a case when a functions is already running.

Write tests to support the core functions

Add tests and practices in place to support the core functions of the package:

  • Run functions locally (start, stop, build).
  • Deploy functions to the cloud (deploy, remove).

Refactor `config` module

The principle of the effort being to make sure it is easy to understand and work one. Currently it is a bit of a mess.

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.