{"id":21867661,"url":"https://github.com/mesos/modules","last_synced_at":"2025-04-14T22:23:10.660Z","repository":{"id":24523000,"uuid":"27929120","full_name":"mesos/modules","owner":"mesos","description":"Mesos modules examples and open source modules outside of  the Apache Mesos source tree.","archived":false,"fork":false,"pushed_at":"2021-04-07T18:30:38.000Z","size":68,"stargazers_count":26,"open_issues_count":5,"forks_count":18,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-28T10:21:24.231Z","etag":null,"topics":["apache","hooks","isolator","kerberos","mesos","mesos-modules","sasl","sasl-gssapi","sasl-support"],"latest_commit_sha":null,"homepage":"","language":"C++","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/mesos.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}},"created_at":"2014-12-12T16:50:26.000Z","updated_at":"2022-01-17T15:11:39.000Z","dependencies_parsed_at":"2022-07-25T10:47:52.132Z","dependency_job_id":null,"html_url":"https://github.com/mesos/modules","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesos%2Fmodules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesos%2Fmodules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesos%2Fmodules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesos%2Fmodules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mesos","download_url":"https://codeload.github.com/mesos/modules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248969656,"owners_count":21191302,"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":["apache","hooks","isolator","kerberos","mesos","mesos-modules","sasl","sasl-gssapi","sasl-support"],"created_at":"2024-11-28T05:10:00.416Z","updated_at":"2025-04-14T22:23:10.643Z","avatar_url":"https://github.com/mesos.png","language":"C++","funding_links":[],"categories":["Tools"],"sub_categories":["Tools for Mesos Developers"],"readme":"# Building the Modules\n\nMesos modules provide a way to easily extend inner workings of Mesos by creating\nand using shared libraries that are loaded on demand. Modules can be used to\ncustomize Mesos without having to recompiling/relinking for each specific use\ncase. Modules can isolate external dependencies into separate libraries, thus\nresulting into a smaller Mesos core. Modules also make it easy to experiment\nwith new features. For example, imagine loadable allocators that contain a VM\n(Lua, Python, …) which makes it possible to try out new allocator algorithms\nwritten in scripting languages without forcing those dependencies into the\nproject. Finally, modules provide an easy way for third parties to easily extend\nMesos without having to know all the internal details.\n\nFor more details, please see\n[Mesos Modules](http://mesos.apache.org/documentation/latest/modules/).\n\n\n## Prerequisites\n\nBuilding Mesos modules requires system-wide installation of the following:\n\n1. google-protobuf\n2. glog\n3. boost\n4. picojson\n\n## Build Mesos with some unbundled dependencies\n\n### Preparing Mesos source code\nFirst we need to prepare Mesos source code.  You can either download the Mesos\nstandard release in the form of a tarball and extract it, or clone the git\nrepository.\n\nLet us assume you did extract/clone\nthe repository into `~/mesos`. Let us also assume that you build Mesos in a\nsubdirectory\ncalled `build` (`~/mesos/build`).\n\n### Building and Installing Mesos\nNext, we need to configure and build Mesos.\nDue to the fact that modules will need to have access to a couple of libprocess\ndependencies, Mesos itself should get built with unbundled dependencies to\nreduce chances of problems introduced by varying versions (libmesos vs. module\nlibrary).\n\nWe recommend using the following configure options:\n\n```\ncd \u003cmesos-source-tree\u003e\nmkdir build\ncd build\n../configure --with-glog=/usr/local --with-protobuf=/usr/local --with-boost=/usr/local --prefix=$HOME/usr\nmake\nmake install\n```\n\nNote that the `--prefix=$HOME/usr` is required only if you don't want to do a system-wide Mesos installation.\n\n## Build Mesos Modules\n\nOnce that is done, extract/clone the mesos-modules package. For the sake of this\nexample, that could be in `~/mesos-modules`. Note that you should not put\n`mesos-modules` into the `mesos` folder.\n\nYou may now run start building the modules.\n\nThe configuration phase needs to know some details about your Mesos installation\nlocation, hence the following are used:\n`--with-mesos=/path/to/mesos/installation`\n\n## Example\n```\n./bootstrap\nmkdir build \u0026\u0026 cd build\n../configure --with-mesos=/path/to/mesos/installation\nmake\n```\n\nAt this point, the Module libraries are ready in `/build/.libs`.\n\n## Using Mesos Modules\nSee [Mesos Modules](http://mesos.apache.org/documentation/latest/modules/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesos%2Fmodules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmesos%2Fmodules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesos%2Fmodules/lists"}