diff --git a/content/releases.json b/content/releases.json new file mode 100644 index 0000000..eb2ef60 --- /dev/null +++ b/content/releases.json @@ -0,0 +1,239 @@ +{ + "releaseInfoTemplate": + { + "name":"", + "version":"", + "releaseDate":"", + "downloadLink":"", + "GPGsig":"", + "changeLog":"", + "PR":"", + "comments":[""] + }, + + "stableReleases":{ + "latestRelease": [{ + "name":"libevent-2.1.12-stable.tar.gz", + "version":"2.1.12", + "releaseDate":"2020-07-05", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.12-stable/ChangeLog", + "PR":"https://github.com/libevent/libevent/pull/1045" + }], + + "otherStableReleases":[ + { + "name":"libevent-2.1.11-stable.tar.gz", + "version":"2.1.11", + "releaseDate":"2019-08-01 (ABI changed)", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.11-stable/ChangeLog" + }, + { + "name":"libevent-2.1.10-stable.tar.gz", + "version":"2.1.10", + "releaseDate":"2019-05-26", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.10-stable/ChangeLog" + }, + { + "name":"libevent-2.1.8-stable.tar.gz", + "version":"2.1.8", + "releaseDate":"2017-01-22", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.8-stable/ChangeLog", + "comments":["Changelog to follow"] + }, + { + "name":"libevent-2.0.22-stable.tar.gz", + "version":"2.0.22", + "releaseDate":"2014-01-05", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.0.22-stable/ChangeLog", + "comments":["Changelog to follow"] + }, + { + "name":"libevent-2.0.21-stable.tar.gz", + "version":"2.0.21", + "releaseDate":"2012-11-18", + "downloadLink":"https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz", + "GPGsig":"https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.0.21-stable/ChangeLog", + "comments":[ + "Several SSL correctness and performance fixes.", + "Build fixes for mingw64", + "Avoid a few resource leaks", + "and more..." + ] + }, + { + "name":"libevent-2.0.20-stable.tar.gz", + "version":"2.0.20", + "releaseDate":"2012-08-23", + "downloadLink":"https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz", + "GPGsig":"https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.0.20-stable/ChangeLog", + "comments": [ + "Fix a crash on windows.", + "Make event_pending() threadsafe.", + "Another SSL callback behavior fixes", + "Avoid an evdns segfault (Greg Hazel)", + "and more..." + ] + }, + { + "name":"libevent-1.4.15-stable.tar.gz", + "version":"1.4.15", + "releaseDate":"2015-01-05", + "downloadLink":"https://github.com/libevent/libevent/archive/release-1.4.15-stable.tar.gz", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-1.4.15-stable/ChangeLog", + "comments":["Changelog to follow"] + }, + { + "name":"libevent-1.4.14b-stable.tar.gz", + "version":"1.4.14b", + "releaseDate":"2010-06-07", + "downloadLink":"https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz", + "GPGsig":"https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz.sig", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-1.4.14b-stable/ChangeLog", + "comments": [ + "Backport evbuffer_readln()", + "Fix a crash when reading badly formatted resolve.conf (Yasuoka Masahiko)", + "Make evutil_make_socket_nonblocking() leave any other flags alone (Jardel Weyrich)", + "Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking() (Jardel Weyrich)", + "Re-add event_siglcb; some old code _was_ still using it. :(", + "Make Libevent 1.4 build on win32 with Unicode enabled. (Brodie Thiesfield)", + "Distribute nmake makefile for 1.4", + "Define _REENTRANT as needed on Solaris, elsewhere (6cbea13)", + "Other bugfixes for http, memory management, and cleanup." + ] + } + ] + }, + + "releaseCandidates": [ + { + "name":"libevent-2.1.7-rc.tar.gz", + "version":"2.1.7-rc", + "releaseDate":"2016-11-05", + "downloadLink":"https://github.com/libevent/libevent/archive/release-2.1.7-rc.tar.gz", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.7-rc/ChangeLog", + "comments":["Changelog to follow."] + } + ], + + "alphaReleases": [ + { + "name":"libevent-2.2.1-alpha-dev.tar.gz", + "version":"2.2.1-alpha", + "releaseDate":"2023-05-21", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.2.1-alpha/libevent-2.2.1-alpha-dev.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.2.1-alpha/libevent-2.2.1-alpha-dev.tar.gz.asc", + "changeLog":"https://github.com/libevent/libevent/blob/release-2.2.1-alpha/ChangeLog" + }, + { + "name":"libevent-2.1.9-beta.tar.gz", + "version":"2.1.9-beta", + "releaseDate":"2019-02-10", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.1.9-beta/libevent-2.1.9-beta.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.1.9-beta/libevent-2.1.9-beta.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.9-beta/ChangeLog" + }, + { + "name":"libevent-2.0.23-beta.tar.gz", + "version":"2.0.23-beta", + "releaseDate":"2019-01-20", + "downloadLink":"https://github.com/libevent/libevent/releases/download/release-2.0.23-beta/libevent-2.0.23-beta.tar.gz", + "GPGsig":"https://github.com/libevent/libevent/releases/download/release-2.0.23-beta/libevent-2.0.23-beta.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.0.23-beta/ChangeLog" + }, + { + "name":"libevent-2.1.6-beta.tar.gz", + "version":"2.1.6-beta", + "releaseDate":"2016-08-27", + "downloadLink":"https://github.com/libevent/libevent/archive/release-2.1.6-beta.tar.gz", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.6-beta/ChangeLog" + }, + { + "name":"libevent-2.1.5-beta.tar.gz", + "version":"2.1.5-beta", + "releaseDate":"2015-01-05", + "downloadLink":"http://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.5-beta.tar.gz/download", + "GPGsig":"http://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.5-beta.tar.gz.asc/download", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.5-beta/ChangeLog", + "comments":["Changelog to follow."] + }, + { + "name":"libevent-2.1.4-alpha.tar.gz", + "version":"2.1.4-alpha", + "releaseDate":"2014-03-21", + "downloadLink":"https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.4-alpha.tar.gz/download", + "GPGsig":"https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.4-alpha.tar.gz.asc/download", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.4-alpha/ChangeLog", + "comments":[ + "Several new utility APIs in libevent core, bufferevents, and evhttp.", + "Detect closes early with EPOLLRDHUP.", + "(Optional) support for buildint with cmake.", + "Bugfixes too numerous to mention.", + {"text":"and much more...", "link":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.4-alpha/whatsnew-2.1.txt"} + ] + }, + { + "name":"libevent-2.1.3-alpha.tar.gz", + "version":"2.1.3-alpha", + "releaseDate":"2013-05-01", + "downloadLink":"https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.3-alpha.tar.gz/download", + "GPGsig":"https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.3-alpha.tar.gz.asc/download", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.3-alpha/ChangeLog", + "comments":[ + "New finalization API with fix for bufferevent deadlock issue.", + "New evdns and evhttp option.", + "Several new unit tests.", + "Bugfixes and portability fixes and build fixes too numerous to mention.", + {"text":"and much more...", "link":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.3-alpha/whatsnew-2.1.txt"} + ] + }, + { + "name":"libevent-2.1.2-alpha.tar.gz", + "version":"2.1.2-alpha", + "releaseDate":"2012-11-18", + "downloadLink":"https://github.com/downloads/libevent/libevent/libevent-2.1.2-alpha.tar.gz", + "GPGsig":"https://github.com/downloads/libevent/libevent/libevent-2.1.2-alpha.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.2-alpha/ChangeLog", + "comments":[ + "Various new functions in the core, evbuffer, and bufferevent APIs", + "Even more backends can now use portable monotonic timers.", + "Updated autotools build infrastructure for faster builds.", + "More reliable unit tests", + "Internal event-callback interface now refactored for flexibility and performance", + "Faster notification with kqueue, faster/more precise timers on Linux", + "Numerous small performance improvements and data structure tweaks throughout the codebase", + "Various bugfixes against 2.1.1-alpha", + {"text":"and much more...", "link":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.2-alpha/whatsnew-2.1.txt"} + ] + }, + { + "name":"libevent-2.1.1-alpha.tar.gz", + "version":"2.1.1-alpha", + "releaseDate":"2012-04-03", + "downloadLink":"https://github.com/downloads/libevent/libevent/libevent-2.1.1-alpha.tar.gz", + "GPGsig":"https://github.com/downloads/libevent/libevent/libevent-2.1.1-alpha.tar.gz.asc", + "changeLog":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.1-alpha/ChangeLog", + "comments":[ + "First alpha release in the 2.1.x series.", + "Useful features for controlling the event loop and avoiding priority inversion", + "New debugging features.", + "New evbuffer functionality, including an improved sendfile/mmap wrapper, the ability to add one evbuffer to another, and more ways to avoid needless copies.", + "Numerous small performance improvements and data structure tweaks throughout the codebase.", + {"text":"and much more...", "link":"https://raw.githubusercontent.com/libevent/libevent/release-2.1.1-alpha/whatsnew-2.1.txt"} + ] + } + ], + + "olderReleases": [] +} \ No newline at end of file diff --git a/download.html b/download.html new file mode 100644 index 0000000..bad772e --- /dev/null +++ b/download.html @@ -0,0 +1,71 @@ + + + + + libevent + + + + + + + + +
+
+
+ +
+
+
+
+

Download–Stable releases

+

These are the ones you probably want for software development, unless you like to track the latest development versions and report bugs in them.

+
+ +
+

Download release candidates

+

This is a release candidate. If you find any bugs, please let us know!

+
+ +
+

Download–Alpha releases

+

This is alpha code. If you find any bugs, please let us know!

+
+ + + +
+
+
+
+ + + + + + + + + + diff --git a/index.html b/index.html index d99ae53..003ae06 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,9 @@ + + + - - -
@@ -71,175 +62,10 @@

Documentation

ABI/API compatibility report: releases master
What's new in: 2.0.x-stable2.1.x-alpha. -

Download–Stable releases

-

These are the ones you probably want for software development, unless you like to track the latest development versions and report bugs in them.

- - - -

Download release candidates

-

This is a release candidate. If you find any bugs, please let us know!

- - - -

Download–Alpha releases

-

This is alpha code. If you find any bugs, please let us know!

- - - -

Older Releases

+

Download–Latest Stable Release

+ + +

Visit our Downloads page for all other stable releases, alpha releases and release candidates!

Libevent has been released under a 3-clause BSD license. Information on public git access.

@@ -251,11 +77,11 @@

Benchmark

Performance comparison using different event notification mech - + - + @@ -286,8 +112,8 @@

Programs using libevent

The usefulness of libevent API is demonstrated b
  • Honeyd – a virtual honeynet daemon – can be used to fight Internet worms.
  • Fragroute – an IDS testing tool
  • Nylon – nested proxy server
  • -
  • Disconcert – a Distributed Computing Framework for Loosely-Coupled Workstations.
  • +
  • Disconcert – a Distributed Computing Framework for Loosely-Coupled Workstations.
  • +
  • Trickle – a lightweight userspace bandwidth shaper.
  • watchcatd – software watchdog designed to take actions not as drastic as the usual solutions, which reset the machine.
  • ScanSSH – a fast SSH server and open proxy scanner.
  • @@ -307,38 +133,6 @@

    Programs using libevent

    The usefulness of libevent API is demonstrated b - - - diff --git a/old-releases.html b/old-releases.html index 1ce64d8..6346238 100644 --- a/old-releases.html +++ b/old-releases.html @@ -9,16 +9,7 @@ - +

    Old releases

    diff --git a/scripts/common.js b/scripts/common.js new file mode 100644 index 0000000..632f16a --- /dev/null +++ b/scripts/common.js @@ -0,0 +1,53 @@ +const navBarHTML = ``; + +const footer = ` `; + + +document.body.insertAdjacentHTML("afterbegin", navBarHTML); // insert nav bar html after start of body +document.body.insertAdjacentHTML("afterend", footer); \ No newline at end of file diff --git a/scripts/download.js b/scripts/download.js new file mode 100644 index 0000000..4bc22e5 --- /dev/null +++ b/scripts/download.js @@ -0,0 +1,97 @@ +var StableNavItems = ''; +var StableCards = ''; + +var RCNavItems = ''; +var RCCards = ''; + +var AlphaNavItems = ''; +var AlphaCards = ''; + +var OlderNavItems = ''; +var OlderCards = ''; + +async function processJson(){ + const temp = await fetch("./content/releases.json"); + const releasesInfo = await temp.json(); + + StableCards += makeCard(releasesInfo.stableReleases.latestRelease[0]); + StableNavItems += makeNavItem(releasesInfo.stableReleases.latestRelease[0]); + + for (i in releasesInfo.stableReleases.otherStableReleases) { + StableNavItems += makeNavItem(releasesInfo.stableReleases.otherStableReleases[i]); + StableCards += makeCard(releasesInfo.stableReleases.otherStableReleases[i]); + } + + for (i in releasesInfo.releaseCandidates) { + RCNavItems += makeNavItem(releasesInfo.releaseCandidates[i]); + RCCards += makeCard(releasesInfo.releaseCandidates[i]); + } + + for (i in releasesInfo.alphaReleases) { + AlphaNavItems += makeNavItem(releasesInfo.alphaReleases[i]); + AlphaCards += makeCard(releasesInfo.alphaReleases[i]); + } + + for (i in releasesInfo.olderReleases) { + OlderNavItems += makeNavItem(releasesInfo.olderReleases[i]); + OlderCards += makeCard(releasesInfo.olderReleases[i]); + } + + // add cards to download.html + document.getElementById("stable-releases").insertAdjacentHTML("beforeend", StableCards); + document.getElementById("release-candidates").insertAdjacentHTML("beforeend", RCCards); + document.getElementById("alpha-releases").insertAdjacentHTML("beforeend", AlphaCards); + document.getElementById("older-releases").insertAdjacentHTML("beforeend", OlderCards); + + + // add Nav items to download.html + document.getElementById("stable-nav").insertAdjacentHTML("beforeend", StableNavItems); + document.getElementById("rc-nav").innerHTML = RCNavItems; + document.getElementById("alpha-nav").innerHTML = AlphaNavItems; + document.getElementById("older-nav").innerHTML = OlderNavItems; +} + +function makeCard(release) { + let card = `
    `; + + card += `` + release.name + ``; + + if ('GPGsig' in release) { + card += ` [GPGSig] `; + } + if ('changeLog' in release) { + card += `ChangeLog
    `; + } + if ('PR' in release){ + card += `PR
    `; + } + + if ('releaseDate' in release){ + card += `Released ` + release.releaseDate ; + } + + + if ('comments' in release){ + card += `
      `; + + for (i in release.comments) { + if (typeof release.comments[i] == 'object') { + card += `
    • ` + release.comments[i].text + `
    • `; + } + else { + card += '
    • ' + release.comments[i] + '
    • '; + } + } + + card += '
    '; + } + + return card + `
    `; +} + +function makeNavItem (release) { + return '' + + release.version + ''; +} + +processJson(); \ No newline at end of file diff --git a/scripts/index.js b/scripts/index.js new file mode 100644 index 0000000..3d72ee7 --- /dev/null +++ b/scripts/index.js @@ -0,0 +1,38 @@ +async function addLatestRelease() { + const temp = await fetch("./content/releases.json"); + const releasesInfo = await temp.json(); + + var release = releasesInfo.stableReleases.latestRelease[0]; + + let card = ""; + + card += `` + release.name + ``; + + if ('GPGsig' in release) + card += ` [GPGSig] `; + if ('changeLog' in release) + card += `ChangeLog
    `; + if ('PR' in release) + card += `PR
    `; + if ('releaseDate' in release) + card += `Released ` + release.releaseDate ; + + if ('comments' in release) { + card += `'; + } + + document.getElementById("latestReleaseInfo").insertAdjacentHTML("beforeend", card); + +} + +addLatestRelease(); \ No newline at end of file diff --git a/style.css b/style.css index 25612a1..b30042c 100644 --- a/style.css +++ b/style.css @@ -2,6 +2,10 @@ font-family: arial, helvetica, sans-serif; } +body { + background-color: white; +} + h1,h2,h3,h4,h5 { font-weight: bold; } @@ -10,6 +14,10 @@ pre { font-family: monospace; } +a { + padding-right: .2em; +} + ul.tight { padding-left: 1.5em; } @@ -22,10 +30,6 @@ p.releasenote { font-size: smaller; } -body { - background-color: white; -} - h3 { margin-bottom: .2em; margin-top: .5em; @@ -35,6 +39,11 @@ table { border-style: none; } +div.card { + margin-bottom: 0.5em; + margin-top: 0.5em; +} + div#maindiv { background-color: #eee; padding: 1em 1em 1em 3em; @@ -84,3 +93,10 @@ a.latest { .link-underline { } + +.vh80 { + position: relative; + overflow: auto; + max-height: 80vh; + +}
    Benchmarks with one active connectionBenchmarks with one active connection  Benchmarks with 100 active connectionsBenchmarks with 100 active connections