sponge
Protobuf
sponge | Protobuf | |
---|---|---|
10 | 174 | |
942 | 63,731 | |
- | 0.5% | |
9.1 | 10.0 | |
7 days ago | about 2 hours ago | |
Go | C++ | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sponge
-
Gin + Gorm Practical Guide, Implementing a Simple Q&A Community Backend Service in One Hour
Install a scaffold named sponge (integrated with Gin + Gorm), which supports Windows, macOS, and Linux environments. Click to view the installation instructions for sponge.
-
From Laravel to Sponge: How to Easily Develop Web Services with Golang
Sponge can be installed on Windows, macOS, and Linux. Check the installation instructions for details.
- Are there any tool like laravel telescope for go/fiber or gin
-
A secret weapon to improve development efficiency, a community backend service was developed in one day
Using the tool sponge, the business logic code and non-business logic code are automatically separated during the code generation process, so that the development only needs to focus on the business logic code.
- From 0 to 1, build a microservice cluster in ten minutes, which consists of an rpc gateway and multiple microservices
-
Generate CRUD interface code directly from 20 mysql tables in one go and add it seamlessly to the web service code
With the help of a code generation tool, sponge, download here https://github.com/zhufuyi/sponge
-
Generate web service code for adding, deleting and update, query tables from sql ddl with restful api interface
Download Address:https://github.com/zhufuyi/sponge
-
Automatic generation of complete web and rpc service project code
Sponge is a quick creation of web services and microservice tools, but also a microservice framework, sponge has a wealth of generated code commands, commonly used repetitive code and scripts are automatically generated, coupled with code decoupling modular design, it is easy to build a complete code project from development to deployment, thereby improving development efficiency.
-
a tool for quickly creating web and microservice code
Dependency plugins and tools are automatically installed after executing the command: protoc-gen-go, protoc-gen-go-grpc, protoc-gen-validate, protoc-gen-gotag, protoc-gen-go-gin, protoc-gen-go-rpc-tmpl, protoc-gen-openapiv2, protoc-gen-doc, golangci-lint, swag, go-callvis.
-
A tool to quickly create web and microservices code
sponge is a microservice framework, a tool for quickly creating microservice code. sponge has a rich generating code commands, a total of 12 different functional code, these functional code can be combined into a complete service (similar to artificially broken sponge cells can be automatically reorganized into a new sponge ). Microservice code features include logging, service registration and discovery, registry, rate limit, circuit breaker, trace, metrics monitoring, pprof performance analysis, statistics, caching, CICD. The code uses a decoupled layered structure and it's easy to add or replace functional code. As an efficiency-enhancing tool, commonly repeated code is basically generated automatically and only business logic code needs to be populated based on the generated template code examples.
Protobuf
-
Hitting every branch on the way down
It's because they changed the versioning format: https://github.com/protocolbuffers/protobuf/releases?page=5
But I suppose old version still receive bugfixes.
-
Reverse Engineering Protobuf Definitions from Compiled Binaries
For at least 4 years protobuf has had decent support for self-describing messages (very similar to avro) as well as reflection
https://github.com/protocolbuffers/protobuf/blob/main/src/go...
Xgooglers trying to make do on the cheap will just create a Union of all their messages and include the message def in a self-describing message pattern. Super-sensitive network I/O can elide the message def (empty buffer) and any for RecordIO clone well file compression takes care of the definition.
Definitely useful to be able to dig out old defs but protobuf maintainers have surprisingly added useful features so you don’t have to.
Bonus points tho for extracting the protobuf defs that e.g. Apple bakes into their binaries.
- Show HN: AuthWin – Authenticator App for Windows
-
Create Production-Ready SDKs With gRPC Gateway
gRPC Gateway is a protoc plugin that reads gRPC service definitions and generates a reverse proxy server that translates a RESTful JSON API into gRPC.
-
Create Production-Ready SDKs with Goa
To use more recent versions of protoc in future applications, you can download them from the Protobuf repository.
-
Roll your own auth with Rust and Protobuf
Use the Protobuf CLI protoc and the plugin protoc-gen-tonic.
-
Add extra stuff to a “standard” encoding? Sure, why not
> didn’t find any standard for separating protobuf messages
The fact that protobufs are not self-delimiting is an endless source of frustration, but I know of 2 standards:
- SerializeDelimited* is part of the protobuf library: https://github.com/protocolbuffers/protobuf/blob/main/src/go...
- Riegeli is "a file format for storing a sequence of string records, typically serialized protocol buffers. It supports dense compression, fast decoding, seeking, detection and optional skipping of data corruption, filtering of proto message fields for even faster decoding, and parallel encoding": https://github.com/google/riegeli
-
Block YouTube Ads on AppleTV by Decrypting and Stripping Ads from Profobuf
It looks like it is in fact universal. Just glancing at the code here, it looks like the tool searches any arbitrary file for bytes that look like encoded protobuf descriptors, specifically looking for bytes that are plausibly the beginning of a FileDescriptorProto message defined here:
https://github.com/protocolbuffers/protobuf/blob/main/src/go...
This takes advantage of the fact that such descriptors are commonly compiled into programs that use protobuf. The descriptors are usually embedded as constant byte arrays. That said, not all protobuf implementations embed the descriptors and those that do often have an option to inhibit such embedding (at the expense of losing some dynamic introspection features).
- How to learn to use protoc in 21 easily infuriating steps
-
What's involved in protobuf encoding?
Not much. You can check the source code in https://github.com/protocolbuffers/protobuf. For example, for serializing a boolean in C#: https://github.com/protocolbuffers/protobuf/blob/main/csharp/src/Google.Protobuf/WritingPrimitives.cs#L165. Strings and objects are a bit more complicated, but it is all about turning the data into its byte representation.
What are some alternatives?
Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
FlatBuffers - FlatBuffers: Memory Efficient Serialization Library
telescope - An elegant debug assistant for the Laravel framework.
SBE - Simple Binary Encoding (SBE) - High Performance Message Codec
Nacos - an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
MessagePack - MessagePack implementation for C and C++ / msgpack.org[C/C++]
go-callvis - Visualize call graph of a Go program using Graphviz
cereal - A C++11 library for serialization
etcd - Distributed reliable key-value store for the most critical data of a distributed system
Apache Parquet - Apache Parquet
sponge_examples - Some examples of using sponge to develop go projects.
Bond - Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.