Loglite (Python)
The Python package is a thin convenience layer on top of the loglite C++ core. It provides:
- CLI (
loglite server run,loglite migrate rollout/rollback) — delegates directly to the C++ server via a pybind11 extension (_core). - Built-in harvesters —
SocketHarvesterand (optional)ZMQHarvester. - Custom harvesters — subclass
loglite.Harvester[Config]to write custom log ingestors in Python. Ingested entries are pushed directly into the C++ server's backlog in the same process.
The C++ core handles everything else: the HTTP server, SQLite read/write, migrations, SSE, and vacuuming. The Python package adds zero server-side overhead.
Installation
Pre-built wheels are published to PyPI:
pip install loglite
# With ZeroMQ harvester support
pip install "loglite[zmq]"
Writing a custom harvester
from dataclasses import dataclass
from loglite.harvesters.base import BaseHarvesterConfig, Harvester
@dataclass
class MyConfig(BaseHarvesterConfig):
source: str
class MyHarvester(Harvester[MyConfig]):
async def run(self):
while self._running:
log = await fetch_from_somewhere(self.config.source)
self.ingest(log) # pushes into the C++ backlog, thread-safe
Register it in your YAML config:
harvesters:
- type: myapp.harvesters.MyHarvester
name: my-source
config:
source: "tcp://localhost:5000"
Local development
Prerequisites
- uv
- Conan 2 —
pip install conan && conan profile detect - CMake ≥ 3.25
- A C++20-capable compiler (GCC 12+, Clang 16+, or Homebrew LLVM on macOS)
Build
cd py
uv sync --all-groups
That's it. CMake automatically invokes Conan during the configure step, so no separate Conan command is needed. The first sync compiles the C++ dependencies (SQLite3, Boost headers, yaml-cpp); subsequent syncs use Conan's binary cache and are fast 💪.
For building docs
uv run --group docs sphinx-build -W --keep-going -b html ../docs ../docs/_build/html
Running tests
cd py
uv run pytest # all tests
uv run pytest tests/test_cli.py # single file
Metadata
Release files for loglite 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| loglite-1.4.0-cp313-cp313-manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64 | Details |
| loglite-1.4.0-cp313-cp313-manylinux_2_28_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ ARM64 | Details |
| loglite-1.4.0-cp312-cp312-manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64 | Details |
| loglite-1.4.0-cp312-cp312-manylinux_2_28_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ ARM64 | Details |
| loglite-1.4.0-cp311-cp311-manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64 | Details |
| loglite-1.4.0-cp311-cp311-manylinux_2_28_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ ARM64 | Details |
| loglite-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64 | Details |
| loglite-1.4.0-cp310-cp310-manylinux_2_28_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ ARM64 | Details |
Total release size: 12.1 MB
Release files / loglite-1.4.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | loglite-1.4.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
24753a0c01f02c562d7afbe237f501220a9c4b65f97ad21496429fd53739f106
|
|
BLAKE2b-256 checksum How to use checksums |
a08b033b0b8a214a836534fa70cbffa6780a4a0e2f0bef92ae27e2dd46d83140
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | loglite-1.4.0-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
48cefa7e269cd6827c22b64be5ceffafc11b109466ea5341504813aa161ddfaa
|
|
BLAKE2b-256 checksum How to use checksums |
eb62a3ad334e1e482b55bc8e5aa01583827cd2a94c1a5bb9e8ce923f53ebe26c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | loglite-1.4.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8714aeb7ea8b30b2aa51328c1eaad5d03f8430464b48761352db0fdd343c681d
|
|
BLAKE2b-256 checksum How to use checksums |
3783cc162fc34257a72e178300f5047453f78947f2cac8c3c0b81d5fff70c58c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | loglite-1.4.0-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
581f2ce4f29d0467219af5b07ca5a83c590c8143551ceedc992e247dc55ed951
|
|
BLAKE2b-256 checksum How to use checksums |
7b3f4e3f0530a6b13c0fda584b139c060534fe56f0ba3a800aaded84835ae688
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | loglite-1.4.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c6dacc7c72e610c5ecf30885b4187f77cb6eb20018a9247e0419a7420311f5fa
|
|
BLAKE2b-256 checksum How to use checksums |
50d0b07004966d3097903694f0c8274615530ac0d10ba7363400d3e0f0792bb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | loglite-1.4.0-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d49f3b1f8d4a6891e3d6529302f5b6505e08ab668af27035be87c873717021eb
|
|
BLAKE2b-256 checksum How to use checksums |
06cc9a41d70035fa4cbc20e6cac920b2593824fa5a0ad71f5bfa562b35d079e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | loglite-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8d3046f22865df6e7d0d647988746f1274280eb9c0925dbaa0b6ffb0b916f83e
|
|
BLAKE2b-256 checksum How to use checksums |
74814a3a6b0d47f1b2c232f77466a25f2c41c48568661dde19c45c664fef99f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / loglite-1.4.0-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | loglite-1.4.0-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0355d7a8452fd595f296ab91faf26174e24d415454712f8f2f1a4cc88006f32f
|
|
BLAKE2b-256 checksum How to use checksums |
832f2336b6a370a04519d4c6d9a2f8f178ac2212f150ea1acd92fb97ea867905
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|