{"id":380085,"date":"2026-10-07T01:52:00","date_gmt":"2026-10-07T08:52:00","guid":{"rendered":"https:\/\/cms-articles.softonic.io\/en\/?p=380085"},"modified":"2026-10-07T01:52:07","modified_gmt":"2026-10-07T08:52:07","slug":"meta-rebalancer-is-now-open-source-its-c-solver-lands-on-pypi","status":"publish","type":"post","link":"https:\/\/cms-articles.softonic.io\/en\/meta-rebalancer-is-now-open-source-its-c-solver-lands-on-pypi\/","title":{"rendered":"Meta Rebalancer is now open source: its C++ solver lands on PyPI"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Meta has <strong>open-sourced Rebalancer<\/strong>, its assignment solver, and it\u2019s now on PyPI as version 1.0.4.<\/p>\n<div class=\"sc-card-program\">\r\n  <div class=\"sc-card-program__body\">\r\n    <div class=\"sc-card-program__row clearfix\">\r\n      <div class=\"sc-card-program__col-logo\">\r\n        <img decoding=\"async\" class=\"sc-card-program__img\" alt=\"Python\" src=\"https:\/\/images.sftcdn.net\/images\/t_app-icon-s\/p\/1790a008-96d6-11e6-8047-00163ed833e7\/3507325768\/python-icon.webp\" width=\"100px\" height=\"100px\">\r\n      <\/div>\r\n      <div class=\"sc-card-program__col-title\">\r\n        <span class=\"sc-card-program__title\">Python<\/span>\r\n        <a class=\"sc-card-program__button sc-card-program-internal\" href=\"https:\/\/python.en.softonic.com\/\" target=\"_self\" rel=\"noopener noreferrer\">Download<\/a>\r\n      <\/div>\r\n      <div class=\"sc-card-program__col-rating\">\r\n        <svg class=\"rating-score__content\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.1\" x=\"0\" y=\"0\" viewbox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" xml:space=\"preserve\"><path class=\"rating-score__background rating-score--good\" fill=\"none\" stroke-width=\"6\" stroke-miterlimit=\"10\" d=\"M40 40c8.3-8.3 8.3-21.7 0-30s-21.7-8.3-30 0 -8.3 21.7 0 30\"><\/path><path class=\"rating-score__value rating-score__value--0\" fill=\"none\" stroke-width=\"6\" stroke-dashoffset=\"0\" stroke-miterlimit=\"10\" d=\"M40 40c8.3-8.3 8.3-21.7 0-30s-21.7-8.3-30 0 -8.3 21.7 0 30\"><\/path><text class=\"rating-score__number\" content=\"\" text-anchor=\"middle\" transform=\"matrix(1 0 0 1 25 31.0837)\" data-auto=\"app-user-score\"><\/text><\/svg>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"sc-card-program__row\">\r\n      <span class=\"sc-card-program__description\"><\/span>\r\n    <\/div>\r\n    <div class=\"sc-card-program__row\">\r\n      <img decoding=\"async\" class=\"sc-card-program__bigpic\" src=\"\" onerror=\"this.style.display='none'\">\r\n    <\/div>\r\n    <a class=\"sc-card-program__link track-link sc-card-program-internal\" href=\"https:\/\/python.en.softonic.com\/\" target=\"_self\" rel=\"noopener noreferrer\"><\/a>\r\n  <\/div>\r\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Inside Meta, Rebalancer has been in use for <strong>more than nine years<\/strong>. The company says it handles about 40 million assignment problems a day across more than 30 internal apps. The work it does is the kind of infrastructure plumbing that matters once systems get big: placing workloads on servers, deciding where shards should live, mapping racks inside datacenters, assigning tasks to servers, and routing user traffic across datacenters.<\/p>\n\n<p class=\"wp-block-paragraph\">The Apache 2.0 release includes a C++ core, a Python interface, documentation, a PyPI package, and Rebalancer Explorer. It\u2019s built so you can describe constraints and goals with modeling constructs, an expression API, and a spec API, rather than needing deep optimization expertise just to get started.<\/p>\n\n<p class=\"wp-block-paragraph\">Under the hood, Rebalancer turns specs into a directed acyclic expression graph. From there, it can use mixed-integer solvers such as FICO Xpress, Gurobi, and HiGHS, or a local-search solver built for <strong>NP-hard problems at scale<\/strong>. Meta says that setup can reach P99 solve times of 12 seconds for 265,000 objects and 3,200 bins, and average 171 seconds for problems with more than 1 million objects.<\/p>\n\n<p class=\"wp-block-paragraph\">If you deal with large-scale placement or routing workloads, it\u2019s probably worth a look. Still, PyPI currently labels Rebalancer as Alpha, Meta says the local-search approach prioritizes scale over <strong>guaranteed global optimality<\/strong>, and there still aren\u2019t any public third-party production case studies.<\/p>\n\n<p class=\"wp-block-paragraph\">You can install it with `<a href=\"https:\/\/pip-tool.en.softonic.com\/\" rel=\"noopener\">pip<\/a> install rebalancer`. It also supports <strong>Python 3.12 and up<\/strong>, ships Linux x86-64 and macOS 14+ ARM64 wheels, and comes with .deb, .rpm, and <a href=\"https:\/\/homebrew-vehicle-sandbox.en.softonic.com\/\" rel=\"noopener\">Homebrew<\/a> packages.<\/p>\n<div class=\"sc-card-program\">\r\n  <div class=\"sc-card-program__body\">\r\n    <div class=\"sc-card-program__row clearfix\">\r\n      <div class=\"sc-card-program__col-logo\">\r\n        <img decoding=\"async\" class=\"sc-card-program__img\" alt=\"Visual Studio Code\" src=\"https:\/\/images.sftcdn.net\/images\/t_app-icon-s\/p\/ef4acbd0-9ab2-4f0e-886c-9bddbc162dcc\/3453502490\/visual-studio-code-icon.jpg\" width=\"100px\" height=\"100px\">\r\n      <\/div>\r\n      <div class=\"sc-card-program__col-title\">\r\n        <span class=\"sc-card-program__title\">Visual Studio Code<\/span>\r\n        <a class=\"sc-card-program__button sc-card-program-internal\" href=\"https:\/\/visual-studio-code.en.softonic.com\/\" target=\"_self\" rel=\"noopener noreferrer\">Download<\/a>\r\n      <\/div>\r\n      <div class=\"sc-card-program__col-rating\">\r\n        <svg class=\"rating-score__content\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.1\" x=\"0\" y=\"0\" viewbox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" xml:space=\"preserve\"><path class=\"rating-score__background rating-score--good\" fill=\"none\" stroke-width=\"6\" stroke-miterlimit=\"10\" d=\"M40 40c8.3-8.3 8.3-21.7 0-30s-21.7-8.3-30 0 -8.3 21.7 0 30\"><\/path><path class=\"rating-score__value rating-score__value--0\" fill=\"none\" stroke-width=\"6\" stroke-dashoffset=\"0\" stroke-miterlimit=\"10\" d=\"M40 40c8.3-8.3 8.3-21.7 0-30s-21.7-8.3-30 0 -8.3 21.7 0 30\"><\/path><text class=\"rating-score__number\" content=\"\" text-anchor=\"middle\" transform=\"matrix(1 0 0 1 25 31.0837)\" data-auto=\"app-user-score\"><\/text><\/svg>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"sc-card-program__row\">\r\n      <span class=\"sc-card-program__description\"><\/span>\r\n    <\/div>\r\n    <div class=\"sc-card-program__row\">\r\n      <img decoding=\"async\" class=\"sc-card-program__bigpic\" src=\"\" onerror=\"this.style.display='none'\">\r\n    <\/div>\r\n    <a class=\"sc-card-program__link track-link sc-card-program-internal\" href=\"https:\/\/visual-studio-code.en.softonic.com\/\" target=\"_self\" rel=\"noopener noreferrer\"><\/a>\r\n  <\/div>\r\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Meta has open-sourced Rebalancer, its assignment solver, and it\u2019s now on PyPI as version 1.0.4. Inside Meta, Rebalancer has been in use for more than nine years. The company says it handles about 40 million assignment problems a day across more than 30 internal apps. The work it does is the kind of infrastructure plumbing &hellip; <a href=\"https:\/\/cms-articles.softonic.io\/en\/meta-rebalancer-is-now-open-source-its-c-solver-lands-on-pypi\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Meta Rebalancer is now open source: its C++ solver lands on PyPI&#8221;<\/span><\/a><\/p>\n","protected":false},"author":9350,"featured_media":380084,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","wpcf-pageviews":0},"categories":[1015],"tags":[],"usertag":[],"vertical":[],"content-category":[6771],"class_list":["post-380085","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","content-category-ai"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/posts\/380085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/users\/9350"}],"replies":[{"embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/comments?post=380085"}],"version-history":[{"count":1,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/posts\/380085\/revisions"}],"predecessor-version":[{"id":380086,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/posts\/380085\/revisions\/380086"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/media\/380084"}],"wp:attachment":[{"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/media?parent=380085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/categories?post=380085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/tags?post=380085"},{"taxonomy":"usertag","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/usertag?post=380085"},{"taxonomy":"vertical","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/vertical?post=380085"},{"taxonomy":"content-category","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/en\/wp-json\/wp\/v2\/content-category?post=380085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}