Coder Social home page Coder Social logo

paulmaddela / startup-os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/startup-os

0.0 2.0 0.0 1.64 MB

Working examples of Google's Open Source stack and deployment to the cloud.

License: Apache License 2.0

Python 5.17% Shell 2.80% Java 73.53% JavaScript 1.02% TypeScript 12.94% HTML 2.82% CSS 1.72%

startup-os's Introduction

StartupOS

Gitter CircleCI

Examples for Google's Open Source stack and deployment to the cloud.

The main technologies in the stack are:

Hands-on experience

Try cloning the repo in Google Cloud Shell and look at the tutorials:

$ ls tutorials/
$ teachme <tutorial_name.md>

Open in Cloud Shell

Supported languages

Protos, gRPC and Bazel are polyglot. The examples in this repo are mostly in Java and Typescript, but there's support for many other languages:

  • gRPC and Protocol Buffers are supported by Google in C++, Java (and Android Java), Python, Go, C#, Objective-C, PHP, Dart, Ruby and JavaScript (incl. Node.js).
  • Bazel is supported by Google in Java (incl. Android builds), Objective-C (incl. iOS builds), C++, Go, Dart, Rust, Sass and Scala.
  • The community has added support for many others languages. See this list for Protocol Buffers and gRPC, and this one for Bazel.

Top examples

  • Lots of Protocol Buffer examples.
  • gRPC-Web: a js client library running in the browser, connected to a gRPC server through an HTTP proxy. Both server and client use gRPC auto-generated stubs to handle communication.
  • gRPC microservices example.
  • Docker example: building containers using Bazel (no dockerfile needed!).
  • Kubernetes: a config file showing how to run a container built with Bazel on k8s.
  • CI example: Using CircleCI to run CI (continuous integration) and test all Bazel targets.
  • Firebase: Java client for storing Protocol Buffers here.
  • Dagger: Java Dependency Injection framework ("Next gen Guice"), see examples here.
  • Flogger: Java logger with fluent API, see examples here.
  • Android app: An Android app built with Bazel and integrated to Firebase.

Tools

There are several useful tools in the tools section.

How to use StartupOS

You can treat StartupOS as a "developer image" with a pre-built setup and associated tools.

You can either:

Installation

Install Bazel. That's it!

Build & Test

  • Build everything: ./build.sh
  • Run all tests: ./test.sh

About monorepos

A monorepo is a software development approach where all code is stored in a single repository. StartupOS doesn't require you to work with a monorepo, but some things, such as sharing a proto file across front-end and backend, are easier to do in a monorepo.

Some good reads about the monorepo approach:

Contributing

You're welcome to contribute and in doing so, learn these technologies. You can have a look at the issues list, or at the project milestones.

startup-os's People

Contributors

vmax avatar val-fed avatar yanivsn avatar oferb avatar webdevelopland avatar matemahinkhan avatar nlewycky avatar nikleshphabiani avatar jin avatar lewish avatar

Watchers

James Cloos avatar  avatar

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.