{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":206417,"defaultBranch":"main","name":"couchdb","ownerLogin":"apache","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-05-21T02:03:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/47359?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715484271.0","currentOid":""},"activityList":{"items":[{"before":"626d9ccc58db3329600c8252ef12f23efdc1da66","after":"0810831ca81ea6371ee1ebedd4141dea80baa827","ref":"refs/heads/qjs","pushedAt":"2024-05-13T06:10:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"0d31d76d3335c0b81027ae5131790a7c669f0e12","after":"626d9ccc58db3329600c8252ef12f23efdc1da66","ref":"refs/heads/qjs","pushedAt":"2024-05-13T05:40:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"152bfe0c09ceb95519a23b84df69bc7a93a370f3","after":"0d31d76d3335c0b81027ae5131790a7c669f0e12","ref":"refs/heads/qjs","pushedAt":"2024-05-13T05:06:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"a512189224238b331c4cf64740856fe69a1446f0","after":"152bfe0c09ceb95519a23b84df69bc7a93a370f3","ref":"refs/heads/qjs","pushedAt":"2024-05-13T04:35:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"4408d4c2414f8e6dc246c5e54a91abba147e9e75","after":null,"ref":"refs/heads/jenkins-qjs-2","pushedAt":"2024-05-12T03:24:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"}},{"before":null,"after":"e05ab7bebaa98443ed5b92cbb4c2d586b871f060","ref":"refs/heads/jenkins-qjs-3","pushedAt":"2024-05-12T03:15:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"55d8bf479516483ce8d6c915fd4f4dd00e9ad05c","after":"a512189224238b331c4cf64740856fe69a1446f0","ref":"refs/heads/qjs","pushedAt":"2024-05-12T03:14:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"df02bb1e9bae01548a5ce5ec5cbdb08e30c58a68","after":"4408d4c2414f8e6dc246c5e54a91abba147e9e75","ref":"refs/heads/jenkins-qjs-2","pushedAt":"2024-05-12T01:36:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"[fixup] no lto for freebsd","shortMessageHtmlLink":"[fixup] no lto for freebsd"}},{"before":"0ead47815a9f99749b759c1d54ad2c9e6a7494b3","after":"df02bb1e9bae01548a5ce5ec5cbdb08e30c58a68","ref":"refs/heads/jenkins-qjs-2","pushedAt":"2024-05-12T01:26:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"[fixup] no lto for freebsd","shortMessageHtmlLink":"[fixup] no lto for freebsd"}},{"before":"55d8bf479516483ce8d6c915fd4f4dd00e9ad05c","after":"0ead47815a9f99749b759c1d54ad2c9e6a7494b3","ref":"refs/heads/jenkins-qjs-2","pushedAt":"2024-05-12T00:41:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":null,"after":"55d8bf479516483ce8d6c915fd4f4dd00e9ad05c","ref":"refs/heads/jenkins-qjs-2","pushedAt":"2024-05-12T00:37:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"6e27ee9bcf7a466225f77c2167a5d3fdf46bb25f","after":"55d8bf479516483ce8d6c915fd4f4dd00e9ad05c","ref":"refs/heads/qjs","pushedAt":"2024-05-12T00:37:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"a95e4f880a915019efa76b44a71ae4c266dde9cc","after":null,"ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T23:33:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"}},{"before":"022ffd15f0fbb29aaa8c2b97e9eda0695a6d3759","after":"105cf01cd912cc9aab2e2afac40c36164af7916f","ref":"refs/heads/main","pushedAt":"2024-05-11T23:33:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":"e9f94a5cb4e5e50a39f42e6faa25340757ef3f56","after":"a95e4f880a915019efa76b44a71ae4c266dde9cc","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T21:06:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":"4b8d4f5af0e8abf68fa20676e8ceba1943c97b5a","after":"e9f94a5cb4e5e50a39f42e6faa25340757ef3f56","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T19:33:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":"9c15de41bc91733ce1fccb2666d1ff4ed84098f3","after":"4b8d4f5af0e8abf68fa20676e8ceba1943c97b5a","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T17:23:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":"463852978e3464479f53ef83650f17cb8cde9338","after":"6e27ee9bcf7a466225f77c2167a5d3fdf46bb25f","ref":"refs/heads/qjs","pushedAt":"2024-05-11T16:57:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"[fixup] revert couch_os_process log error->info change","shortMessageHtmlLink":"[fixup] revert couch_os_process log error->info change"}},{"before":"cc87df177c4341cadba34cf5a27a44507f2c441d","after":"463852978e3464479f53ef83650f17cb8cde9338","ref":"refs/heads/qjs","pushedAt":"2024-05-11T16:47:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"9f44379b2245bce2d5a5e70a286a0bbf7e123c5d","after":"9c15de41bc91733ce1fccb2666d1ff4ed84098f3","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T15:33:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":"2211e0a3ea35e3589c1d176af85c36258108539e","after":null,"ref":"refs/heads/jenkins-qjs-1","pushedAt":"2024-05-11T05:54:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"}},{"before":"ca2c5008a643ca16702c7059dc650468bc061c7b","after":"9f44379b2245bce2d5a5e70a286a0bbf7e123c5d","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T04:54:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.","shortMessageHtmlLink":"Update CI OSes"}},{"before":null,"after":"ca2c5008a643ca16702c7059dc650468bc061c7b","ref":"refs/heads/jenkins-update-ci-oses","pushedAt":"2024-05-11T04:09:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI OSes\n\nRemove deprecated buster, centos 7 and bionic.\n\nInstead of centos 7, start testing centos 9","shortMessageHtmlLink":"Update CI OSes"}},{"before":"2211e0a3ea35e3589c1d176af85c36258108539e","after":"cc87df177c4341cadba34cf5a27a44507f2c441d","ref":"refs/heads/qjs","pushedAt":"2024-05-10T17:13:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":null,"after":"2211e0a3ea35e3589c1d176af85c36258108539e","ref":"refs/heads/jenkins-qjs-1","pushedAt":"2024-05-10T16:39:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"8e56ed98e45db2d8907dce404b7f6f9df3ac36ac","after":"2211e0a3ea35e3589c1d176af85c36258108539e","ref":"refs/heads/qjs","pushedAt":"2024-05-10T15:53:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Add QuickJS as a Javascript engine option\n\nhttps://bellard.org/quickjs\n\nSome benefits over SM:\n\n * Small. We're using 6 or so C files vs 700+ SM91 C++ files.\n\n * Built with Apache CouchDB as opposed having to maintain a separate SM\n package, like for RHEL9, for instance, where they dropped support for SM\n already. (see https://github.com/apache/couchdb/issues/4154).\n\n * Embedding friendly. Designed from ground-up for embedding. SM has been\n updating the C++ API such that we have to keep copy-pasting new versions of\n our C++ code every year or so. (see\n https://github.com/apache/couchdb/pull/4305).\n\n * Easy to modify to accept Spidermonkey 1.8.5 top level functions for\n map/reduce code so we don't have have to parse the JS, AST transform it, and\n then re-compile it.\n\n * Configurable runtime feature set - can disable workers, promises and other\n API and features which may not work well in a backend JS environment. Some\n users may want more, some may want to disable even Date(time) features to\n hedge again Spectre-style attacks (spectreattack.com).\n\n * Allows granular time (reduction) tracking if we wanted to provide a runtime\n allowance for each function.\n\n * Better sandboxing. Creating a whole JSRuntime takes only 300 microseconds, so\n we can afford to do that on reset. JSRuntimes cannot share JS data or object\n between them.\n\n * Seems to be faster in preliminary benchmarking with small\n concurrent VDU and view builds:\n https://gist.github.com/nickva/ed239651114794ebb138b1f16c5f6758\n Results seem promising:\n - 4x faster than SM 1.8.5\n - 5x faster than SM 91\n - 6x reduced memory usage per couchjs process (5MB vs 30MB)\n\n * Allows compiling JS bytecode ahead of time a C array of bytes.\n\nQuickJS can be built alongside Spidermonkey and toggled on/off at runtime:\n\n```\n./configure --dev --js-engine=quickjs\n```\n\nThis makes it the default engine. But Spidermonkey can still be set in the\nconfig option.\n\n```\n[couchdb]\njs_engine = spidermonkey | quickjs\n```\n\nTo test individual views, without switching the default use the\n`javascript_quickjs` language in the design docs. To keep using Spidermonkey\nengine after switching the default, can use `javascript_spidermonkey` language\nin design docs. However, language selection will reset the view and the view\nwill have to be rebuilt.\n\nIt's also possible to build without Spidermonkey support completely by using:\n```\n./configure --disable-spidermonkey\n```\n\nIssue: https://github.com/apache/couchdb/issues/4448","shortMessageHtmlLink":"Add QuickJS as a Javascript engine option"}},{"before":"9062983b53ae3fe2c552248cd819b0fc23b305f8","after":null,"ref":"refs/heads/jenkins-update-erlang-versions","pushedAt":"2024-05-08T17:49:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"}},{"before":"e3a819f41a9b63635f5a9bc738194467888d094c","after":"022ffd15f0fbb29aaa8c2b97e9eda0695a6d3759","ref":"refs/heads/main","pushedAt":"2024-05-08T17:49:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI Erlang versions","shortMessageHtmlLink":"Update CI Erlang versions"}},{"before":"e9b80c2417bfff46e180b6ba3e2c9da1f2202789","after":"9062983b53ae3fe2c552248cd819b0fc23b305f8","ref":"refs/heads/jenkins-update-erlang-versions","pushedAt":"2024-05-08T14:29:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nickva","name":"Nick Vatamaniuc","path":"/nickva","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/211822?s=80&v=4"},"commit":{"message":"Update CI Erlang versions","shortMessageHtmlLink":"Update CI Erlang versions"}},{"before":"78309a678c8f34e49be531b003c4effddacca380","after":null,"ref":"refs/heads/dropwizard-4.0.7","pushedAt":"2024-05-08T06:33:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rnewson","name":"Robert Newson","path":"/rnewson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47223?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESA34GwA","startCursor":null,"endCursor":null}},"title":"Activity ยท apache/couchdb"}