8 releases
| new 0.4.4 | Feb 13, 2026 |
|---|---|
| 0.4.3 | Feb 11, 2026 |
| 0.3.10 | Jan 28, 2026 |
#9 in #trino
55 downloads per month
Used in 3 crates
(2 directly)
3MB
45K
SLoC
Hamelin
A pipe-based query language for security event analytics.
Installation
[dependencies]
hamelin = "0.3"
Features
trino- Trino backend support
Documentation
Adding a New Crate
When adding a new publishable crate to the workspace:
-
Add required metadata to the crate's
Cargo.toml:[package] name = "hamelin_newcrate" description = "Description of the crate" version.workspace = true edition.workspace = true readme.workspace = true repository.workspace = true homepage.workspace = true documentation.workspace = true license-file.workspace = true -
Publish an initial version below the current workspace version. For example, if the workspace is at
0.3.9, publish0.3.8:# Temporarily set version to 0.3.8 in root Cargo.toml, then: cargo publish -p hamelin_newcrate --allow-dirty # Revert the version change after publishing -
Configure trusted publishing on crates.io:
- Go to the crate's settings page on crates.io
- Click "Add" under Trusted Publishing
- Configure with:
- Repository:
perpetualsystems/hamelin - Workflow:
hamelin-release.yaml - Environment:
release
- Repository:
- Enable "Require trusted publishing for all new versions"

-
Add to workspace in root
Cargo.toml:- Add to
memberslist - Add to
[workspace.dependencies]with the current workspace version
- Add to
The CI will verify that all publishable crates exist on crates.io before allowing PRs to merge.
Releasing a New Version
To cut a new release of Hamelin:
- Update the Cargo version - Update the version in the root
Cargo.tomlunder[workspace.package], along with each[workspace.dependencies] - Update the pnpm version - Update the version in the root
package.json - Sync pnpm package versions - Run
pnpm version:syncto update all@hamelin.sh/*package versions - Merge to main - Create a PR and merge to main to trigger the release workflows
Dependencies
~26–48MB
~681K SLoC