• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 24079604329
88%

Build:
DEFAULT BRANCH: master
Ran 07 Apr 2026 11:59AM UTC
Jobs 1
Files 526
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Apr 2026 11:44AM UTC coverage: 87.7% (+0.01%) from 87.69%
24079604329

push

github

locker
lua: allow to export IPROTO functions without polluting globals

Before this patch, there were two ways to make a Lua function callable
over IPROTO: (1) add it to the `_func` system space or (2) add it to
the Lua global namespace `_G`. The first way was never popular because
it implies a DDL operation. The second way may result in undesired side
effects because it pollutes the global namespace. This patch introduces
the third way - `box.iproto.export()`. It adds a function to
the internal Lua table `box.internal.func_registry` checked by
`box_lua_find()` before falling back on `_G`.

The clearly-defined registry of all exported functions will let us
implement balancing of `IPROTO_CALL` requests among application threads
at the IPROTO thread level.

Closes #10036
Needed for #12312

@TarantoolBot document
Title: Document `box.iproto.export()`
Since: 3.7

It is now possible to expose a Lua function to `IPROTO_CALL` requests
without polluting the global Lua namespace:

```lua
box.iproto.export('echo', function(...) return ... end)
```

The `IPROTO_CALL` request handler first looks up the function name
among all functions exported with `box.iproto.export()`, then falls
back on searching in `_G` if not found.

`box.iproto.export()` may be called both before and after `box.cfg()`.

70618 of 118805 branches covered (59.44%)

13 of 13 new or added lines in 1 file covered. (100.0%)

26 existing lines in 13 files now uncovered.

106163 of 121052 relevant lines covered (87.7%)

1373419.44 hits per line

Coverage Regressions

Lines Coverage ∆ File
4
81.82
-12.12% src/lua/minifio.c
3
81.38
-0.9% src/lib/core/coio.c
3
97.15
-0.21% src/lib/msgpuck/msgpuck.h
2
97.17
-0.13% src/box/lua/net_box.c
2
92.78
0.0% src/box/vinyl.c
2
87.01
-0.41% src/box/vy_stmt.c
2
93.79
-0.41% src/box/xrow_update_field.c
2
96.3
-3.7% src/lib/core/backtrace.c
2
22.68
0.02% src/lib/uri/uri_parser.c
1
85.9
0.01% src/box/xlog.c
1
80.0
-2.5% src/lib/core/clock.c
1
96.3
-3.7% src/lib/digest/crc32_hw_impl.c
1
96.55
-0.86% src/lib/vclock/vclock.c
Jobs
ID Job ID Ran Files Coverage
1 24079604329.1 07 Apr 2026 11:59AM UTC 526
87.7
GitHub Action Run
Source Files on build 24079604329
  • Tree
  • List 526
  • Changed 33
  • Source Changed 0
  • Coverage Changed 33
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 897e94fd on github
  • Prev Build on master (#23950640947)
  • Next Build on master (#24099315390)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc