优化提议:pb.decode 传入的二进制data支持起始索引和数量

Open
#285 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
lua
Domain
api

Research direction

Start at the pb.decode entry point and trace how the input data length is currently consumed. Add optional start and count arguments while preserving existing calls without them. Done means embedded protobuf data can be decoded directly from the original string, with only the selected byte range parsed.

Written by the indexing model from the issue text.

Description

question

我用skynet的bson模块,编码时需要在string前面加到2个字节的类型信息,才能识别出这是一个二进制的BSON类型。

解码bson时,发现是二进制同样会先加2个字节再加二进制数据,最后返回一个string。

这个二进制实际上是一个pb数据,按现在的接口我只能先 string.sub 去掉前面字节,再传入pb.decode,会多一次字节串的创建和拷贝。

期望能在pb.decode引入2个可选参数: pb.decode(type, data, table, start, count),start表明从data的第几个字节开始解析,count指定解析多少个字节。

这样拿到的二进制就直接可以丢给pb.decode了。

Dominant language
Lua
Stars
1.9k
Forks
400
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from starwing/lua-protobuf

All issues in starwing/lua-protobuf

Similar issues

More Lua issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.