All Projects → kocircuit → Kocircuit

kocircuit / Kocircuit

Licence: other
Ko: A generic type-safe language for concurrent, stateful, deadlock-free systems and protocol manipulations

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Kocircuit

protobuf-compiler
online protobuf compiler
Stars: ✭ 24 (-92.13%)
Mutual labels:  protobuf, grpc
grpcman
A grpc testing tool based on Electron & Vue.js & Element-UI
Stars: ✭ 22 (-92.79%)
Mutual labels:  protobuf, grpc
nameko-grpc
GRPC Extensions for Nameko
Stars: ✭ 51 (-83.28%)
Mutual labels:  protobuf, grpc
liftbridge-api
Protobuf definitions for the Liftbridge gRPC API. https://github.com/liftbridge-io/liftbridge
Stars: ✭ 15 (-95.08%)
Mutual labels:  protobuf, grpc
grpc-spring-security-demo
Spring Boot-based gRPC server with gRPC endpoints secured by Spring Security
Stars: ✭ 50 (-83.61%)
Mutual labels:  protobuf, grpc
mnemosyne
Session management service with RPC API based on protobuf.
Stars: ✭ 15 (-95.08%)
Mutual labels:  protobuf, grpc
tsrpc
A TypeScript RPC framework, with runtime type checking and serialization, support both HTTP and WebSocket. It is very suitable for website / APP / games, and absolutely comfortable to full-stack TypeScript developers.
Stars: ✭ 866 (+183.93%)
Mutual labels:  protobuf, grpc
modern-api-management
A modern approach to manage APIs effectively using Protobuf
Stars: ✭ 36 (-88.2%)
Mutual labels:  protobuf, grpc
docker-protobuf
An all-inclusive protoc Docker image
Stars: ✭ 105 (-65.57%)
Mutual labels:  protobuf, grpc
xrgrpc
gRPC library for Cisco IOS XR
Stars: ✭ 40 (-86.89%)
Mutual labels:  protobuf, grpc
ocaml-grpc-envoy
Using OCaml + gRPC via Envoy
Stars: ✭ 41 (-86.56%)
Mutual labels:  protobuf, grpc
Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (-6.56%)
Mutual labels:  grpc, protobuf
grpc-chat
Simple Chat Server/Client implemented with gRPC
Stars: ✭ 107 (-64.92%)
Mutual labels:  protobuf, grpc
grpcoin
API-driven cryptocurrency paper trading game. Write a bot and play!
Stars: ✭ 53 (-82.62%)
Mutual labels:  protobuf, grpc
agentgo
Hi! Agentgo is a tool for making remote command executions from server to client with golang, protocol buffers (protobuf) and grpc.
Stars: ✭ 15 (-95.08%)
Mutual labels:  protobuf, grpc
vtprotobuf
A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2
Stars: ✭ 418 (+37.05%)
Mutual labels:  protobuf, grpc
grpc-jwt-spring-boot-starter
Spring boot starter for gRPC framework with JWT authorization
Stars: ✭ 24 (-92.13%)
Mutual labels:  protobuf, grpc
sisyphus
Sisyphus is the way how we provide backend services.
Stars: ✭ 59 (-80.66%)
Mutual labels:  protobuf, grpc
api
Temporal gRPC API and proto files
Stars: ✭ 25 (-91.8%)
Mutual labels:  protobuf, grpc
gruf-demo
A demonstration Rails application utilizing gruf, a gRPC Rails framework.
Stars: ✭ 42 (-86.23%)
Mutual labels:  protobuf, grpc

Build Status

Ko

Experimental

The Ko language, library & tools are in active development, so do expect things to change.

Introduction

Ko is a concurrent, immutable, functional language.

Ko is both generic (function arguments and return values do not declare types) and type-safe (a new static-type inference algorithm ensures deep static type safety everywhere).

Ko is built on top of the Go runtime, in order to benefit from Go's rich ecosystem of integrations with industrial technologies.

Existing Go libraries and clients can be "exposed" in Ko with little relative effort. Protocol definitions, like Protocol Buffers or OpenAPI, can also be exposed in Ko using simple code-generation.

Getting started

To install the Ko interpreter, run:

go get -u github.com/kocircuit/kocircuit/lang/ko

Learning Ko

Perhaps the best way to learn the language is by reading sequentially through our step-by-step lessons.

Design, specifications and theory

An initial formal specification of the language (its underlying computational model, its syntax and its type system) can be found in the evolving Ko Handbook.

Why use Ko?

There are four main aspects of Ko which make it an interesting proposal:

  • Language. Ko is generic and at the same time entirely type-safe. Genericity means that functions do not have to declare argument and return value types, which makes them highly reusable. At the same time, when entire Ko programs are compiled against external protocols, services or types, they are fully-verified for type compliance.

  • Types. Ko uses a type-system which is the common denominator of industry protocol standards, like Protocol Buffers, Thrift, OpenAPI, and so on. These type systems are captured by structures, sequences (repeated types), primitive types, optional types and map types. This type system is already familiar to most programmers.

  • Architecture. The forthcoming Ko compiler compiles Ko programs to a high-level intermediate representation (IR) which can be used to code-generate an actual implementation in any language (e.g. Go, Java, C++, etc.) with relatively little effort. The IR produced by the Ko compiler is a collection of functions in SSA form, with deep type annotations everywhere.

  • Integrations. The Ko interpreter, being built on top of Go, can gain access to any technology available in Go by binding dynamically to it with little effort. This includes libraries and clients written in Go, as well as standards like Protocol Buffers and OpenAPI which have bindings for Go. The forthcoming Ko compiler, being a code-generating technology, can benefit from integrations with any target language, as described in the architecture bullet (above).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].