4

GitHub - Genez-io/genezio: Run a completely functional backend in just a few min...

 1 year ago
source link: https://github.com/Genez-io/genezio
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

The Coolest Way to Write, Deploy and Use a Serverless API

What is genezio?

genezio is a platform for developers to write, deploy and use a serverless API.

You are writing your backend logic in classes and design your frontend using your preferred programming language. By calling genezio deploy, we are deploying your backend classes in a serverless infrastructure.

To make it easy to call your backend logic from the client, an SDK is generated. You can use it to remotely call the methods of your class in a very natural way.

For more details on how to use genezio, you can check out the official documentation.

star If you want to support the genezio community, give us a star on this repo star

Contents

Features

  • screwdriver  Deploy your backend in no-time on a serverless infrastructure.
  • framed_picture  Host your frontend on the genezio infrastructure.
  • magic_wand  A magically-generated SDK to call your server functions from the client.
  • eyes  A handful of examples to start from at genezio-examples.
  • hammer  A dedicated GitHub Action to integrate in your CI/CD at genezio-github-action.

Getting Started

  1. Install genezio. Use the command below to install genezio:
npm install genezio -g
  1. Login to genezio. Run the following command to login into your account:
genezio login
  1. Clone our Hello World example. Copy the following command in your terminal:
git clone https://github.com/Genez-io/genezio-examples.git
  1. Navigate to the project folder. Copy the following command in your terminal to go to the "Hello World" project folder:
cd ./genezio-examples/javascript/getting-started/server/
  1. Deploy your code. Use the command below to deploy the code using genezio:
npm i && genezio deploy
  1. Test the code. Run this command to test the code:
cd ../client && npm i && npm start

For more details about the genezio CLI commands, run genezio help or genezio [command] help.

Test your project using the Test Interface

You can also test your code locally by running the following command in the server directory.

genezio local

This will spawn a local server that can be used for testing. Now, you can navigate to the Test Interface and test your project locally from GUI.

Test Interface

Once you are happy with your project, you can deploy it in a production environment by running: genezio deploy.

Examples deployed with genezio

You can find out more about genezio from our examples repository.

A detailed list of all the examples is below:

Official documentation

How does genezio work?

genezio is using JSON RPC 2.0 to facilitate the communication between SDK and your class. Your functions are deployed in the Genezio infrastructure. The functions are not executed on a long lasting Virtual Machine. Instead, our system uses a serverless approach. Whenever a request is received, your code is loaded and executed. This is more cost and energy efficient. However, the developer needs to take into account the following - the values of the global variables are not persistent between runs.

Detailed documentation

To find more details on how to use genezio, check out the official documentation:

If you cannot find what you are looking for in the docs, don't hesitate to drop us a GitHub issue or start a discussion on Discord.

Getting support

We want you to get your project up and running in no-time.

If you find yourself in a pickle using genezio, drop us a GitHub issue, start a discussion with us on Discord or drop us an email at [email protected].

System requirements

  • genezio can be installed and used on macOS, Linux-based distributions and Windows.
  • A version of node >= 14.0.0 should be installed on your machine.

Troubleshooting

For the most common issues that our users have dealt with, we created a Troubleshooting section in the documentation.

If you don't find the guidance there, drop us a GitHub issue. We are more than happy to help you!

Contributing

Contributions are welcome! Please see our Contributing Guide for more details.

Show your support by giving us a star star, to help others discover genezio and become part of our community!

Known issues

  • genezio currently has full backend support for JavaScript and TypeScript. We will soon offer full support for Swift, Dart (Flutter), Kotlin and many others.
  • genezio currently is able to generate an SDK in JavaScript (full), TypeScript (full) and Swift (beta). We are planning to launch an Python SDK, Dart SDK, Kotlin SDK and many others.
  • The execution time of the backend functions cannot exceed 10 seconds.

Ecosystem

There are a growing number of awesome projects deployed with genezio and we want to shout out about them.

If you deployed a project using genezio let us know on Discord and we will add it to our Hall Of Fame.

Hall Of Fame

Below you can find projects build by the community and deployed with genezio.

Check them out for inspiration:

If you've also built a project that you are proud of, please open a Pull Request adding it or let us know on Discord.

Badge

Brag to your friends that you are using genezio with this awesome badge ->

[![deployed with: genezio](https://img.shields.io/badge/deployed_with-genezio-6742c1.svg?labelColor=62C353&style=flat)](https://github.com/genez-io/genezio)

License

genezio is licensed under GNU General Public License v3.0. For more information, please refer to LICENSE.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK