All Projects → kbiakov → Anakin

kbiakov / Anakin

Licence: GPL-3.0 license
Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! 🌞

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Anakin

goprotoc
Library for writing protoc plugins in Go; also includes a pure-Go protoc replacement
Stars: ✭ 73 (+329.41%)
Mutual labels:  protobuf, codegeneration
gome
gome- Golang Match Engine, uses Golang for calculations, gRPC for services, ProtoBuf for data exchange, RabbitMQ for queues, and Redis for cache implementation of high-performance matching engine microservices/ gome-高性能撮合引擎微服务
Stars: ✭ 47 (+176.47%)
Mutual labels:  protobuf
protoactor-python
Proto Actor - Ultra fast distributed actors
Stars: ✭ 78 (+358.82%)
Mutual labels:  protobuf
yages
Yet another gRPC echo server (YAGES)
Stars: ✭ 28 (+64.71%)
Mutual labels:  protobuf
protobuf-ts
Protobuf and RPC for TypeScript
Stars: ✭ 527 (+3000%)
Mutual labels:  protobuf
read-protobuf
Small library to read serialized protobuf(s) directly into Pandas Dataframe
Stars: ✭ 28 (+64.71%)
Mutual labels:  protobuf
elm-protobuf
protobuf plugin for elm
Stars: ✭ 93 (+447.06%)
Mutual labels:  protobuf
terraform-pb
Programmatic management of infrastructure using Terraform and Protocol Buffers
Stars: ✭ 18 (+5.88%)
Mutual labels:  protobuf
django-grpc
Easy gRPC service based on Django application
Stars: ✭ 177 (+941.18%)
Mutual labels:  protobuf
api
Speechly public API definitions and generated code
Stars: ✭ 15 (-11.76%)
Mutual labels:  protobuf
Bynar
Server remediation as a service
Stars: ✭ 53 (+211.76%)
Mutual labels:  protobuf
powerproto
🎉 An awesome version control tool for protoc and its related plugins.
Stars: ✭ 161 (+847.06%)
Mutual labels:  protobuf
protobuf-ipc-example
Protocol buffer IPC example
Stars: ✭ 19 (+11.76%)
Mutual labels:  protobuf
RentHouseWeb
使用 go+docker+go-micro微服务框架开发的租房网系统,符合RESTful架构风格。
Stars: ✭ 28 (+64.71%)
Mutual labels:  protobuf
AndroidNetworkProgramming
Android网络编程实战总结,涉及HTTP、TCP、UDP常用协议。
Stars: ✭ 34 (+100%)
Mutual labels:  protobuf
scalapb-circe
Json/Protobuf convertors for ScalaPB use circe
Stars: ✭ 38 (+123.53%)
Mutual labels:  protobuf
ProtobufDecoder
A Google Protocol Buffers (Protobuf) payload decoder/analyzer
Stars: ✭ 33 (+94.12%)
Mutual labels:  protobuf
protobuf-example-java
Companion Repository for my Protocol Buffers course
Stars: ✭ 67 (+294.12%)
Mutual labels:  protobuf
protobuf-ue4
Build Protobuf for Unreal Engine 4 with Jenkins Pipeline.
Stars: ✭ 26 (+52.94%)
Mutual labels:  protobuf
protoconfig
ProtoConfig 1.0: Open Standard for using, defining, and consuming software configuration input in a unified way.
Stars: ✭ 24 (+41.18%)
Mutual labels:  protobuf

Anakin GoDoc Go Report Card Maintainability Build Status Android Arsenal

Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app!

Description

Anakin takes care about some routine tasks and helps to create shared code between client (mobile apps) & server app written in Go and backed by gRPC & Protobuf. So, how it works?

At the first stage, it just generates from your *.proto (with defined service, RPC-calls & allowed messages) main gRPC-file *.pb.go which may be used by any Go app. It uses protoc utility.

Next Anakin parses *.proto-file to extract RPC-methods and messages, takes templates for client and server & generates similar Go code. After that it builds binaries for Android (*.aar) and iOS (*.framework) using gomobile.

Mobile binaries build stage may fail by different reasons and you may want to go back again later when environment will be ready. Also you can ignore build stage if you want to make some changes in generated code. Anyway Anakin has another anakin-build script inside for this purpose, which automatically copied for generated $YOUR_OUTPUT/client directory with other source files when you run original anakin script.

Anakin plugin stages

Required

  1. Go 1.5 and higher.

  2. Xcode Command Line Tools (Mac OS X only, will be installed if needed).

  3. Android SDK (if Android build is needed).

Usage

anakin -P myrpc.proto [-O output_dir] [-h localhost] [-p 50051] [-android] [-ios]

Flags:
-P | --proto <proto> (required) path to *.proto-file
-O | --output <output> (optional) path to output directory, default: /gen
-h | --host <host> (optional) server host, default: localhost
-p | --port <port> (optional) server port, default: 50051
-android (optional) is Android build needed, default: false
-ios (optional) is iOS build needed, default: false

anakin-build [--android 1] [--ios 1]

Flags:
--android 1 (optional) is Android build needed, default: 1 (true)
--ios 1 (optional) is iOS build needed, default: 1 (true)

Author

Kirill Biakov

License

                     GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.
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].