All Projects → zenhack → Haskell Capnp

zenhack / Haskell Capnp

Licence: mit
Cap'n Proto for Haskell

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Haskell Capnp

Hprose Html5
Hprose is a cross-language RPC. This project is Hprose 2.0 Client for HTML5
Stars: ✭ 237 (+264.62%)
Mutual labels:  rpc, serialization
Flatbuffers
FlatBuffers: Memory Efficient Serialization Library
Stars: ✭ 17,180 (+26330.77%)
Mutual labels:  rpc, serialization
elm-protobuf
protobuf plugin for elm
Stars: ✭ 93 (+43.08%)
Mutual labels:  serialization, rpc
Noproto
Flexible, Fast & Compact Serialization with RPC
Stars: ✭ 138 (+112.31%)
Mutual labels:  rpc, serialization
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (+580%)
Mutual labels:  rpc, serialization
Autocser
AutoCSer is a high-performance RPC framework. AutoCSer 是一个以高效率为目标向导的整体开发框架。主要包括 TCP 接口服务框架、TCP 函数服务框架、远程表达式链组件、前后端一体 WEB 视图框架、ORM 内存索引缓存框架、日志流内存数据库缓存组件、消息队列组件、二进制 / JSON / XML 数据序列化 等一系列无缝集成的高性能组件。
Stars: ✭ 140 (+115.38%)
Mutual labels:  rpc, serialization
hprose-as3
Hprose for ActionScript 3.0
Stars: ✭ 18 (-72.31%)
Mutual labels:  serialization, rpc
Hprose Delphi
Hprose is a cross-language RPC. This project is Hprose 2.0 for Delphi and FreePascal
Stars: ✭ 100 (+53.85%)
Mutual labels:  rpc, serialization
Hprose
HPROSE is short for High Performance Remote Object Service Engine. It's a serialize and RPC library, the serialize library of hprose is faster, smaller and more powerful than msgpack, the RPC library is faster, easier and more powerful than thrift.
Stars: ✭ 348 (+435.38%)
Mutual labels:  rpc, serialization
Bebop
An extremely simple, fast, efficient, cross-platform serialization format
Stars: ✭ 305 (+369.23%)
Mutual labels:  rpc, serialization
Hprose Js
Hprose is a cross-language RPC. This project is Hprose 2.0 RPC for JavaScript
Stars: ✭ 133 (+104.62%)
Mutual labels:  rpc, serialization
Hprose Java
Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
Stars: ✭ 542 (+733.85%)
Mutual labels:  rpc, serialization
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (+103.08%)
Mutual labels:  rpc, serialization
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+2903.08%)
Mutual labels:  rpc, serialization
Protobuf
Protocol Buffers - Google's data interchange format
Stars: ✭ 52,305 (+80369.23%)
Mutual labels:  rpc, serialization
sirdez
Glorious Binary Serialization and Deserialization for TypeScript.
Stars: ✭ 20 (-69.23%)
Mutual labels:  serialization, rpc
Thriftpy
Thriftpy has been deprecated, please migrate to https://github.com/Thriftpy/thriftpy2
Stars: ✭ 1,156 (+1678.46%)
Mutual labels:  rpc, serialization
Datakernel
Alternative Java platform, built from the ground up - with its own async I/O core and DI. Ultra high-performance, simple and minimalistic - redefines server-side programming, web-development and highload!
Stars: ✭ 87 (+33.85%)
Mutual labels:  rpc, serialization
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (+356.92%)
Mutual labels:  rpc, serialization
Elle
The Elle coroutine-based asynchronous C++ development framework.
Stars: ✭ 459 (+606.15%)
Mutual labels:  rpc, serialization

build status hackage

A Haskell library for the Cap'N Proto Cerialization and RPC protocol.

Getting Started

There is a module Capnp.Tutorial which contains an introduction to the library; users are strongly encouraged to read this first, as the reference documentation can be bewildering without that context.

Status

Serialization support works, with some limitations:

  • We do not support defining custom default values for fields of pointer type; see (#28).
  • We currently do not correctly handle decoding lists of structs from non-composite lists (#27). This means that, contrary to the protocol evolution rules, it is not safe to change a field from type List(T) (where T is any non-struct type) to a list of a struct type.

Level 1 RPC support is implemented and usable, though there are a couple gaps in the API. It should be considered alpha quality for now. Specific things to be aware of:

  • The implementation is not robust against resource exhaustion attacks; for now users are strongly discouraged from using it to do RPC with untrusted peers.
  • While most of the machinery for it is in place, the API does not currently expose a way to do field projection on remote promises. As a consequence, actually pipelining method calls is not currently possible, so the library is currently best suited to environments which are already low-latency.

The API is considered unstable. It will likely see changes, for the sake of polish, consistency, etc. as well as to improve performance and accommodate more features as we add them.

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].