{"id":21387172,"url":"https://github.com/sshtools/jenny","last_synced_at":"2025-06-13T06:33:06.466Z","repository":{"id":225477367,"uuid":"766079679","full_name":"sshtools/jenny","owner":"sshtools","description":"A fast and lightweight modular web application framework","archived":false,"fork":false,"pushed_at":"2024-09-21T00:29:19.000Z","size":254,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-23T00:13:31.629Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sshtools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-02T09:30:23.000Z","updated_at":"2024-09-21T00:29:23.000Z","dependencies_parsed_at":"2024-05-10T21:27:02.283Z","dependency_job_id":"de573446-0def-40dc-a73d-fe7f973a83a6","html_url":"https://github.com/sshtools/jenny","commit_stats":null,"previous_names":["sshtools/jenny"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshtools%2Fjenny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshtools%2Fjenny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshtools%2Fjenny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshtools%2Fjenny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sshtools","download_url":"https://codeload.github.com/sshtools/jenny/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864825,"owners_count":20360360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T12:12:02.751Z","updated_at":"2025-03-16T12:17:34.227Z","avatar_url":"https://github.com/sshtools.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jenny\n\nA lightweight modular web application framework for Java based on [Bootlace](https://github.com/sshtools/bootlace), [tinytemplate](https://github.com/sshtools/tinytemplate) and [uHTTP](https://github.com/sshtools/uhttpd)\nthat aims to be fast, flexible and fun to use.\n\n## Design\n\nJenny is based on just 3 of our own projects, each of which was written from the ground up to be\nas simple as possible and avoid requiring large external 3rd party libraries and frameworks. \n\n * [Bootlace](https://github.com/sshtools/bootlace). A JPMS based plugin framework.\n * [uHTTPD](https://github.com/sshtools/uhttpd). An embeddable HTTP/HTTPs server.\n * [tinytemplate](https://github.com/sshtools/tinytemplate). A simple but flexible string templating library.\n\n**This framework does *not* use the servlet API, instead it relies on **uHTTPD**'s native API.**\n\n## Features\n\n * Dynamic loading of extensions, add and remove functionality while the server is running \n * Plain and pure Java. No reflection, dependency injection, annotation scanning, AOP or other weirdness.\n\n## Extensions\n\nUsing Bootlace's module layers, Jenny is made up of extensions. There are 2 classes of extensions.\n\n### Framework\n\nFramework extensions provide some common piece of functionality that may be shared and used\nby multiple dependent plugins. This saves individual plugins including their own copies of\nsuch libraries, the framework is guaranteed to provide them.  \n\n * [dbus](framworks/dbus/README.md). Provides access to [DBus-Java](https://github.com/hypfvieh/dbus-java), used to access and provide services over [D-Bus](https://www.freedesktop.org/wiki/Software/dbus).\n * [logging](framworks/logging/README.md). Adds the [SLF4J](http://slf4j.org/) logging framework.\n * [jna](framworks/jna/README.md). Allows plugins to access other native libraries.\n\n### Plugins\n\nPlugins Jenny comes with a suite a plugins to help you build your application.\n\n * [auth-linux](auth/linux/README.md). Linux PAM authentication.\n * [bootstrap5](plugins/bootstrap5/README.md). Adds [Bootstrap 5](https://getbootstrap.com/docs/5.0/getting-started/introduction/) stylesheets and scripts.\n * [bootswatch](plugins/bootswatch/README.md). Provides open source [Bootswatch](https://bootswatch.com/) themes for Bootstrap.\n * [config](plugins/config/README.md). Simple INI file based configuration facilities for applications to use.\n * [io](plugins/io/README.md). Websocket based JSON messaging framework. \n * [plugin-manager](plugins/plugin-manager/README.md). Install or update plugins.\n * [toast](plugins/toast/README.md). Popup \"Toast\" messages in your web applications.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshtools%2Fjenny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsshtools%2Fjenny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshtools%2Fjenny/lists"}