Packages
snakepit
0.3.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
High-performance pooler and session manager for external language integrations. Supports Python, Node.js, Ruby, and more with gRPC streaming, session management, and production-ready process cleanup.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Snakepit.MixProject do
use Mix.Project
def project do
[
app: :snakepit,
version: "0.3.0",
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
description:
"High-performance pooler and session manager for external language integrations",
package: package(),
deps: deps(),
dialyzer: dialyzer(),
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {Snakepit.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:jason, "~> 1.0"},
{:msgpax, "~> 2.4.0"},
{:grpc, "~> 0.10.2"},
{:protobuf, "~> 0.14.1"},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
]
end
defp package do
[
description:
"High-performance pooler and session manager for external language integrations",
licenses: ["MIT"],
maintainers: ["NSHkr <ZeroTrust@NSHkr.com>"],
links: %{"GitHub" => "https://github.com/nshkrdotcom/snakepit"},
files: ~w(lib priv assets .formatter.exs mix.exs README* LICENSE* CHANGELOG* DIAGS*),
exclude_patterns: ["priv/plts", "priv/python/__pycache__"]
]
end
defp dialyzer do
[
plt_add_apps: [:mix],
plt_core_path: "priv/plts",
plt_file: {:no_warn, "priv/plts/dialyzer.plt"}
]
end
defp docs do
[
main: "readme",
extras: ["README.md", "DIAGS.md"],
assets: %{"assets" => "assets"},
logo: "assets/snakepit-logo.svg",
before_closing_head_tag: &docs_before_closing_head_tag/1,
before_closing_body_tag: &docs_before_closing_body_tag/1
]
end
defp docs_before_closing_head_tag(:html) do
"""
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
"""
end
defp docs_before_closing_head_tag(_), do: ""
defp docs_before_closing_body_tag(:html) do
"""
<script>
document.addEventListener("DOMContentLoaded", function () {
mermaid.initialize({
startOnLoad: true,
theme: "default",
themeVariables: {
primaryColor: "#6366f1",
primaryTextColor: "#fff",
primaryBorderColor: "#4f46e5",
lineColor: "#6b7280",
sectionBkgColor: "#f3f4f6",
altSectionBkgColor: "#ffffff",
gridColor: "#e5e7eb",
secondaryColor: "#e0e7ff",
tertiaryColor: "#f1f5f9"
}
});
});
</script>
"""
end
defp docs_before_closing_body_tag(_), do: ""
end