A thin web framework on top of the Jakarta Servlet API.
Translation pending
Developer toolsJava · ShellGitHub @benelogOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Thin call stack, strong signature.
Spider Silk is a web framework built on the Jakarta Servlet API.
Thin is a measurement: two stack frames stand between HttpServlet.service and a handler.
• Tomcat or Undertow changes only the container frames below.
• Filters add no frames, since they finish before the handler runs.
• Nothing the framework calls into is more than four frames deep.
• Strong is the signature: a handler returns a WebResponse, so a branch that forgets to answer does not compile.
Spider silk is thin and holds, which is what the name is for.Read the full README ↗:project-version: 1.1.0
++++
[discrete] = Spider Silk
Thin call stack, strong signature.
Spider Silk is a web framework built on the Jakarta Servlet API.
== Why Spider Silk
WebResponse handle(WebRequest request), registered as a lambda or a method reference.
** No reflection.
The framework's own code reflects over nothing, so what runs is what the code says, and a GraalVM native image needs no reflection config for it.
** A thin call stack.
Two stack frames stand between HttpServlet.service and a handler, and nothing the framework calls into is more than four frames deep.
** A small default stack.
One dependency brings embedded Jetty and jte, and jte compiles templates to Java, so rendering takes no reflection either.The manual explains each of these in detail: https://spider-silk.benelog.net[spider-silk.benelog.net] (https://spider-silk.benelog.net/ko/[한국어 매뉴얼]), for every released version.
== Quick Start
Requires Java 25 or later.
The current version on Maven Central is {project-version}.
=== build.gradle
repositories { mavenCentral() }
=== pom.xml
=== Hello, world
import net.benelog.spidersilk.App; import net.benelog.spidersilk.WebResponse;
public class Main {
public static void main(String[] args) {
App app = new App();
app.get("/hello/{name}", req -> WebResponse.text("Hello, " + req.pathParam("name")));
app.start(8080);
}
spider-silk-core includes embedded Jetty, so nothing else is needed.
The https://spider-silk.benelog.net[manual] covers the rest: the modules, templates, testing, deployment, and the agent skill.
== AI coding agents
link:skills/spider-silk/SKILL.md[skills/spider-silk/] is an https://agentskills.io[Agent Skill] that guides a coding agent to use the framework as intended.
The repository is a plugin marketplace for both Claude Code and Codex.
Either marketplace installs the skill from the latest release's tag, so the skill describes the API of the jars on Maven Central.
Claude Code installs it with two commands inside a session:
Codex installs it with two commands in a shell:
A new release reaches an installed skill through /plugin marketplace update spider-silk in Claude Code, and through codex plugin marketplace upgrade spider-silk followed by codex plugin add spider-silk@spider-silk in Codex.
https://spider-silk.benelog.net/agent-skill.html[The manual] covers auto-update, a project-level copy, and Cursor and GitHub Copilot.
== Further reading