Implement LINO GRPC API - A GRPC-style API using LINO instead of JSON #38
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎯 Overview
This PR implements a GRPC-style API that uses LINO (Links Notation) strings directly in protocol buffer messages, instead of traditional JSON payloads. This addresses issue #33 by providing a modern, efficient API while maintaining full compatibility with LINO syntax.
✨ Key Features
--grpc-serverflag📋 Implementation Details
New Files Added:
protos/lino_service.proto- Protocol buffer service definitionsFoundation.Data.Doublets.Cli/LinoGrpcService.cs- GRPC service implementationGRPC_API.md- Comprehensive API documentationexamples/grpc_client_example.cs- Client usage examplesModified Files:
Foundation.Data.Doublets.Cli/Program.cs- Added GRPC server mode supportFoundation.Data.Doublets.Cli/Foundation.Data.Doublets.Cli.csproj- Added GRPC dependencies🚀 Usage Examples
Start GRPC Server:
LINO vs JSON Comparison:
Traditional JSON GRPC:
{ "operation": "create", "links": [{"source": 1, "target": 1}, {"source": 2, "target": 2}] }LINO GRPC API:
Client Usage:
🧪 Testing
The implementation has been tested with:
🔄 Current Status
💡 Benefits
🔗 Related
This implementation provides the foundation for a modern GRPC API while maintaining the unique advantages of LINO notation over traditional JSON-based APIs.
🤖 Generated with Claude Code