Catalog PyPI
PACKAGE EXPLORERView in registry

ada-polycall

PyPI

Ada binding for Polycall, installed as source files (not a Python API)

adaobinexuspolycall
Versions collected1
Direct dependencies0From release 0.1.0
Last observed20 Oct, 19:04 UTC

README

Version 0.1.0 documentation

ada-polycall is the Ada binding for Polycall, distributed through PyPI as source files. It is not a Python library: pip install ada-polycall places the binding's files (commit 885784548a5b) inside the package. python -m ada_polycall path prints where they are and python -m ada_polycall extract DIR copies them out; build and use them as described below.

ada-polycall

Ada binding for the Polycall core, published as the npm source package ada-polycall.

The package Ada_Polycall imports the core's binding ABI v1 (<polycall.h>, docs/BINDING_ABI.md in the core repository) directly with Import / Convention => C and Interfaces.C; it requires polycall >= 1.1.0. There is no C shim and no configuration parser, socket or protocol code in this repository.

Ada API

with Ada_Polycall; use Ada_Polycall;

Check_ABI;                                     --  Polycall_Error unless ABI 1
Put_Line (Version);                            --  "1.1.0"

Status := Run_Config ("ada-polycallrc");                  --  polycall_ffi_run_config (path, 1)
Status := Run_Config ("ada-polycallrc", Strict => False); --  validate only
Run_Config_Or_Raise ("ada-polycallrc");                   --  raises Polycall_Error

Put_Line (Call ("127.0.0.1:7000", "inventory", "get",
                "{""item_id"":""widget-a""}", Timeout_Ms => 2000));

declare
   Alpha, Beta : Peer;                         --  limited, controlled: finalization closes
begin
   Open (Alpha, "alpha");                      --  127.0.0.1:<ephemeral>
   Open (Beta, "beta", "127.0.0.1:0", Auth_Token => Token);
   Register (Alpha, "beta", Endpoint (Beta));
   Send (Alpha, "beta", "hello", Message_Id => "msg-1");   --  String or Bytes payload
   declare
      M : constant Message := Receive (Beta, Timeout_Ms => 5000);
   begin
      --  M.Sender, M.Id (Unbounded_String), M.Payload (Stream_Element_Array)
   end;
end;

Also: Open_Send_Only, Close (a second Close raises E_Invalid_Handle), Node_Id, Unregister, List, Ping, Cancel (wakes a task blocked in Receive with E_Cancelled), Health, Describe, Error_Name, Last_Error, and a non-raising Call procedure returning the status and the remote error object.

Polycall_Error messages read status=<code> POLYCALL_E_<NAME>: ... (<polycall_last_error detail>) [context]; Status_Of (Occurrence) returns the code, to compare with the E_* constants of the package.

Build and test

Needs GNAT and GPRbuild (Debian: apt-get install gnat gprbuild) and an installed core found through pkg-config:

export PKG_CONFIG_PATH=/opt/polycall/lib/pkgconfig LD_LIBRARY_PATH=/opt/polycall/lib
make              # lib/libada_polycall.a  (gprbuild -P ada_polycall.gpr)
make test         # real-core test + interop with the polycall CLI
make test-loader  # missing library / old library / ABI mismatch (Linux)
make memcheck     # the real-core test under valgrind memcheck
make example      # examples/basic.adb

Without make, pass the core's library directory yourself: gprbuild -P ada_polycall.gpr -XPOLYCALL_LDFLAGS="-L<prefix>/lib". Projects that with "ada_polycall.gpr" inherit -lpolycall through Linker_Options (gprbuild also records that directory as the program's RUNPATH).

make test builds tests/ada_polycall_test.adb and runs it through tests/run-real.sh, which starts polycall peer serve and polycall start. A missing GNAT, polycall CLI or valgrind is reported as SKIP (exit 77), never as success. See tests/TESTS.md.

Loading

The core is linked (-lpolycall), so the dynamic loader resolves libpolycall.so.1 when the program starts. A missing library stops the program with the loader's libpolycall.so.1: cannot open shared object file (exit 127); a 1.0 library without the binding ABI v1 symbols with undefined symbol: polycall_... (exit 127); neither is a crash. A library that reports another binding ABI is refused: Check_ABI, Run_Config, Describe, Call and Open return or raise E_UNSUPPORTED (the raising forms with a Polycall_Error naming the ABI it reported). make test-loader checks all three against fake libraries.

Windows: the Makefile builds .exe programs, but the binding has not been run on Windows yet -- the QA host has no GNAT (MinGW GNAT + GPRbuild needed).

npm source package

npm install ada-polycall

The CommonJS entry point only exposes absolute paths (adaSpec, adaBody, project, config, ...). The package is not yet published.

Author

Nnamdi Michael Okpala — okpalan@protonmail.com. MIT licensed, see LICENSE.

Downloads & popularity

1downloads
1-day window · source-reported counts15 Oct 2026
56280
2026-10-03: 56 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-03–2026-10-032026-10-04: 5 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-04–2026-10-042026-10-05: 2 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-05–2026-10-052026-10-06: 2 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-06–2026-10-062026-10-07: 2 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-07–2026-10-072026-10-08: 2 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-08–2026-10-082026-10-09: 1 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-09–2026-10-092026-10-10: 1 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-10–2026-10-102026-10-11: 1 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-11–2026-10-112026-10-13: 1 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-13–2026-10-132026-10-14: 2 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-14–2026-10-142026-10-15: 1 · observed 2026-10-20T21:26:02.4059581Z · period 2026-10-15–2026-10-15
3 Oct15 Oct

pypistats · 12 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-15 – 2026-10-1512026-10-20T21:26:02.4059581Z
2026-10-14 – 2026-10-1422026-10-20T21:26:02.4059581Z
2026-10-13 – 2026-10-1312026-10-20T21:26:02.4059581Z
2026-10-11 – 2026-10-1112026-10-20T21:26:02.4059581Z
2026-10-10 – 2026-10-1012026-10-20T21:26:02.4059581Z
2026-10-09 – 2026-10-0912026-10-20T21:26:02.4059581Z
2026-10-08 – 2026-10-0822026-10-20T21:26:02.4059581Z
2026-10-07 – 2026-10-0722026-10-20T21:26:02.4059581Z
2026-10-06 – 2026-10-0622026-10-20T21:26:02.4059581Z
2026-10-05 – 2026-10-0522026-10-20T21:26:02.4059581Z
2026-10-04 – 2026-10-0452026-10-20T21:26:02.4059581Z
2026-10-03 – 2026-10-03562026-10-20T21:26:02.4059581Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.03 Oct 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
obinexus/ada-polycall

Shared repository data · GitHub

License detected in repository
Not collected

Repository

PENDING
obinexus/polycall

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:04 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:24ac322ecd918cb57c4d3be1f3f6efd95f69fbd3ec7bfb377cf3628c80729863