diff --git a/.travis.yml b/.travis.yml index 74c230f9e..848e4421d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ script: if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then USE_SKEPTIC=1 cargo test else - cargo test + cargo test && cargo check --examples fi - | if [[ "$TRAVIS_RUST_VERSION" == "nightly" && $CLIPPY ]]; then diff --git a/README.md b/README.md index e5d824d70..0c53a7822 100644 --- a/README.md +++ b/README.md @@ -6,23 +6,25 @@ Protobuf support for actix-web framework. ## Example ```rust,ignore -use actix_web::{HttpResponse, Result}; -use actix_protobuf::ProtoBuf; +use actix_protobuf::*; +use actix_web::*; -#[derive(Clone, Debug, PartialEq, Message)] +#[derive(Clone, PartialEq, Message)] pub struct MyObj { - #[prost(int32, tag="1")] + #[prost(int32, tag = "1")] pub number: i32, - #[prost(string, tag="2")] + #[prost(string, tag = "2")] pub name: String, } -fn index(msg: ProtoBuf) -> Result { +async fn index(msg: ProtoBuf) -> Result { println!("model: {:?}", msg); - HttpResponse::Ok().protobuf(msg.0) // <- send response + HttpResponse::Ok().protobuf(msg.0) // <- send response } ``` +See [here](https://github.com/actix/actix-protobuf/tree/master/examples/prost-example) for the complete example. + ## License This project is licensed under either of diff --git a/examples/prost-example/client.py b/examples/prost-example/client.py index 1f16270f4..939a71b5d 100755 --- a/examples/prost-example/client.py +++ b/examples/prost-example/client.py @@ -1,10 +1,10 @@ #!/usr/bin/env python3 # just start server and run client.py -# wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-python-3.5.1.zip -# unzip protobuf-python-3.5.1.zip.1 -# cd protobuf-3.5.1/python/ -# python3.6 setup.py install +# wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protobuf-python-3.11.2.zip +# unzip protobuf-python-3.11.2.zip.1 +# cd protobuf-3.11.2/python/ +# python3 setup.py install # pip3 install --upgrade pip # pip3 install aiohttp diff --git a/examples/prost-example/test_pb2.py b/examples/prost-example/test_pb2.py index 05e71f3a6..ea5a1d9d6 100644 --- a/examples/prost-example/test_pb2.py +++ b/examples/prost-example/test_pb2.py @@ -1,13 +1,11 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: test.proto -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -19,9 +17,9 @@ DESCRIPTOR = _descriptor.FileDescriptor( name='test.proto', package='', syntax='proto3', - serialized_pb=_b('\n\ntest.proto\"%\n\x05MyObj\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3') + serialized_options=None, + serialized_pb=b'\n\ntest.proto\"%\n\x05MyObj\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3' ) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -39,21 +37,21 @@ _MYOBJ = _descriptor.Descriptor( has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - options=None), + serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='name', full_name='MyObj.name', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - options=None), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], - options=None, + serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], @@ -64,12 +62,13 @@ _MYOBJ = _descriptor.Descriptor( ) DESCRIPTOR.message_types_by_name['MyObj'] = _MYOBJ +_sym_db.RegisterFileDescriptor(DESCRIPTOR) -MyObj = _reflection.GeneratedProtocolMessageType('MyObj', (_message.Message,), dict( - DESCRIPTOR = _MYOBJ, - __module__ = 'test_pb2' +MyObj = _reflection.GeneratedProtocolMessageType('MyObj', (_message.Message,), { + 'DESCRIPTOR' : _MYOBJ, + '__module__' : 'test_pb2' # @@protoc_insertion_point(class_scope:MyObj) - )) + }) _sym_db.RegisterMessage(MyObj)