问题标签 [capnproto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6478 浏览

types - 当我在 Rust 函数中注释类型时,为什么会收到错误“预期类型参数”?

我正在玩 Rust 的capnproto 库。因为 Rust 可以在某些情况下推断类型,所以我可以这样做:

无需知道消息的类型。如果我想将一个引用传递给message一个函数,我现在需要知道什么消息是让函数知道会发生什么。

一般有没有方便的方法来做到这一点?

到目前为止,我已经完成了以下工作:

编译器错误失败:

但是当我键入注释我的函数时,如下所示:

我收到如下错误:

错误:由于先前的错误而中止

我对来自 C++ 背景的 Rust 非常陌生;对不起,如果这是一个菜鸟问题!

0 投票
0 回答
363 浏览

python - 多线程 Cap'n Proto Python (pycapnp) RPC 服务器

我正在使用 Python 3 编写一个简单的 RPC 服务器pycapnp。我有一个函数调用大约需要一秒钟才能完成。此功能还需要将数据存储在缓存中(当前使用 实现lru-dict)。

单个客户端一切正常,但是一旦我开始增加负载,请求就会开始排队(在服务器上运行的函数内部测量的墙时间约为 1 秒;在客户端上我可以轻松获得 10 秒或更多秒)。

据我所知,目前不支持pycapnp其他事件循环。

我尝试在服务器实现ThreadPoolExecutor__init__方法中创建一个(也创建了缓存),然后将以下内容添加到 RPC 方法中:

虽然这可行,但主线程显然仍在等待每个Promise任务完成,这再次意味着客户端必须排队。

有类似情况的人找到出路了吗?我不一定必须使用pycapnp,但这是推荐的 Cap'n Proto Python 实现 AFAICT。

序列化然后简单地通过套接字发送会更简单吗?我没有使用 Cap'n Proto RPC 中的 Promise 流水线或任何其他花哨的功能。

0 投票
1 回答
172 浏览

c++ - 为什么我不需要在 capnproto 中使用 AnyPointer::initAs?

我刚刚开始尝试使用 cap'n proto 并试图提高我的理解。

现在我正在尝试找出如何最好地使用 AnyPointer,在试验过程中我注意到我似乎不需要为我的对象调用 initAs 并且我设置的值将被正确读取。

这是我的具有任何结构对象的根容器的架构

当我开始序列化某些对象时,使用 initAs 还是 getAs 似乎并不重要。

当我再次反序列化时,我从上述任何一种方法中都得到了正确的值。在这里使用 getAs 是正确的还是更复杂的 TestObject 会破坏事情?

0 投票
0 回答
108 浏览

c++ - capnproto :我可以从结构中获取 AnyPointer 吗?

鉴于此架构

是否可以从 C++ 代码中的 TestObject::Builder 获取 AnyPointer::Builder?

这就是我想要做的:

我想做的是有一个带有单个参数类型的抽象接口,例如。

有可能沿着这条路线走吗?

0 投票
0 回答
57 浏览

d - Capnproto D语言打印文件中的所有数据

我下载了 dlanguage 的 capnproto 并开始修改示例地址簿。我的问题是,每次我将一个人添加到地址簿时,它仍然只打印文件中的一个数据,而不是整个文件。

如果我调用 writeAddressBook() 4 次,那么地址簿中有 4 个同名的人,问题是,每次我打印所有数据时,它只打印第一个..

0 投票
3 回答
17727 浏览

redis - 使用 gRPC 进行文件传输

使用 gRPC 和协议缓冲区将文件或图像从一个进程传输到另一个进程的标准方法是什么?该文件从 1MB 到 6MB。

基本上我想知道如何为 python、C++ 和 golang 实现发送者/接收者代码对。

http://github.com/johanbrandhorst/chunker

这是迄今为止我能找到的最接近 golang 的。我在想它是否可以扩展到 python 和 c++。首选具有较少依赖性的更通用的方法。

我正在创建多服务以通过 IPC 消息传递交换图像 btw 机器/进程。另一种选择是使用共享内存。我不确定Redis是否可以存储图像

0 投票
1 回答
178 浏览

python - Outputting pyspark dataframe in capnp (cap'n proto) format

I have been tasked with outputting a Pyspark Dataframe into cap'n proto (.capnp) format. Does anyone have a suggestion for the best way to do this?

I have a capnp schema, and I have seen the python wrapper for capnp (http://capnproto.github.io/pycapnp/), but I'm still not sure what's the best way to go from dataframe to capnp.

0 投票
1 回答
1036 浏览

c++ - 部分读取/写入 Cap'n Proto 消息

我正在尝试在现有项目中使用 Cap'n Proto,该项目由通过 UDS 进行通信的客户端和服务器组成。我没有资源(我怀疑它会被接受)来重做所有客户端-服务器 RPC,但我想从 Cap'n Proto 序列化机制中受益。不幸的是,在我看来这是不可能的。

最大的问题是服务器端,它是单线程的(如果多线程没有任何严肃的论据,它将一直如此)并使用它自己的基于轮询的循环。所有事件都被部分读取,服务器无法阻止等待任何事件被完全读取 - 这就是我卡住的地方。我们有自己的协议和类来包装消息,当事件被完全读取时,它们可以消耗文件描述符中的字节并通知,以便服务器可以处理它。我想我已经分析了大多数 Cap'n Proto 接口(序列化、异步序列化),而且似乎没有任何修改就不能以相同的方式使用它。

我真的希望我错过了什么。我有吗?

0 投票
1 回答
99 浏览

python - [CapNProto][pycapnp] 结构体发送服务器

如何向服务器发送结构?

我试过了:

测试.capnp:

此外,我怎样才能给测试赋值?感谢您的帮助:)

0 投票
1 回答
1509 浏览

windows - 在 C++ 中通过 TCP 发送 Cap'n Proto 消息

我对网络完全陌生,也刚开始使用Cap'n Proto

这是这里的一些示例程序:

最后一行使用writePackedMessageToFd()whichfd作为文件描述符message并由MallocMessageBuilder.

我使用 Visual Studio 2017 在 Windows 上工作。

我想发送message到远程服务器,该服务器将使用类似的 Cap'nP 对象进行回答。

问题是我如何发送它并接收答案?

我尝试通过以下方式初始化和创建套接字:

如果一切顺利,则socket()返回一个文件描述符。所以我只是使用 writePackedMessageToFd(sock, message),但没有工作。顺便说一句,我不理解这个概念,因为套接字不“知道”我想使用哪个 IP 和端口。我应该在使用该connect()功能时指定它们。

我试图跳过该writePackedMessageToFd()功能。连接到服务器connect()并使用 Windows 的send()功能发送message. 像这样的东西:

这个发送了一些东西,但肯定是错误的,因为服务器没有响应。

简而言之:我想通过 TCP 连接发送和接收 Cap'n Proto 打包消息到指定的 IP:端口。

我怎么能做到这一点?我真的需要一些帮助。

我真的很感谢你的帮助!提前致谢!