Comments (6)
Curious what @prashantv and @akshayjshah have to say here.
from yarpc-go.
I'm a little biased since I suggested this in a code review.
The HTTP ResponseWriter buffers already, as does TChannel (it writes into a frame, and then sends that frame). Since the underlying layers already buffers, if we introduce another buffer in our transport layer, we're doing 2x the buffering, and (possibly more importantly) twice the memory allocations.
While I'm not too concerned about performance currently, this kind of change is would break the design / API so I want to make sure we think about this now rather than later.
from yarpc-go.
True. Another reason I'm seriously considering it is this: For Thrift (and other encoders) will all have some sort of WriteTo(io.Writer)
function, needing to return an io.Reader
for the body requires another buffer, but if we have something that has a Writer
, we can forego that allocation there as well.
from yarpc-go.
I'm all in favor of this. Even if we're not worried about performance, using an http.ResponseWriter
-type interface is familiar in Go. The more familiar we can make YARPC feel, the less foot-shooty it'll be.
from yarpc-go.
FWIW this won't affect the public API for JSON and Thrift but it will affect the public API for raw-low level usage (streams of raw bytes, forwarding servers, or implementing your own encoding).
from yarpc-go.
🍔 🍔 foot-shooty 🍔 🍔
from yarpc-go.
Related Issues (20)
- Unexpected interpolation output HOT 2
- Transient failure in unary panic handler test.
- Switch case fall through requires `fallthrough` keyword HOT 2
- gRPC: Support introspection
- http: Set default IdleConnTimeout to avoid holding on to connections forever
- 'thriftrw-plugin-yarpc' server handler throws UnexpectedError in certain cases of bad request
- Documentation example does not work HOT 1
- grpc example not running HOT 4
- http outbound doesn't return response for !2XX status
- Allow wraping application error with yarpcerrors.Status to access error chain in middleware HOT 1
- codahale/hdrhistogram repo url has been transferred under the github HdrHstogram umbrella HOT 1
- Compatibility with native gRPC HOT 4
- `unexpected EOF` when gRPC inbound returns error with details HOT 2
- Ability to set http headers without allocations HOT 5
- Log the original context deadline for assisted debugging HOT 1
- Thrift package has vulnerabilities
- [YARPCERRORS] Why do we use `code.String()` instead of `.Name()`? HOT 4
- Caller Procedure not being populated for inbound/outbound middlewares
- Unclean shutdown when using single-peer with gRPC HOT 1
- Allow peer address to be accessible to the server handler function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yarpc-go.