====
Idem
====
.. image:: https://img.shields.io/badge/made%20with-pop-teal
:alt: Made with pop, a Python implementation of Plugin Oriented Programming
:target: https://pop.readthedocs.io/
.. image:: https://img.shields.io/badge/docs%20on-docs.idemproject.io-blue
:alt: Documentation is published with Sphinx on docs.idemproject.io
:target: https://docs.idemproject.io/idem/en/latest/index.html
.. image:: https://img.shields.io/badge/made%20with-python-yellow
:alt: Made with Python
:target: https://www.python.org/
.. rubric:: Transform configuration into idempotent action.
About
=====
Idem is an idempotent dataflow programming language. It exposes stateful
programming constructs that makes things like enforcing the state
of an application, configuration, SaaS system, or others very
simple.
Since Idem is a programming language, it can also be used for data
processing and pipelining. Idem can be used not only to manage
the configuration of interfaces, but also for complex rule engines
and processing files or workflows.
Idem is a language to glue together management of all sorts of
interfaces. You can think of it like having idempotent
scripts. Automation that can be run over and over again that
enforces a specific state or process.
Idem is unique in that it is built purely as a language. It
can be added to any type of management system out there and can
be applied in a cross platform way easily.
Idem's functionality can also be expanded easily. Instead of storing
all of the language components in a single place, the libraries
used by Idem can be written independently and seamlessly merged
into Idem, just like a normal programming language!
* `Idem Website <https://www.idemproject.io/>`__
* `Idem Source Code <https://gitlab.com/vmware/idem/idem>`__
* `Idem Project Docs <https://docs.idemproject.io/>`__
What does Idempotent mean?
==========================
The concept of Idempotent is simple! It just means that every time
something is run, it always has the same end result regardless of the state
of a system when the run starts!
At first glance this might seem useless, but think more deeply. Have you
ever needed to make sure that something was set up in a consistent way? It
can be very nice to be able to enforce that setup without worrying about
breaking it. Or think about data pipelines, have you ever had input data
that needed to be processed? Idempotent systems allow for data to be
easily processed in a consistent way, over and over again!
How Does This Language Work?
============================
Idem works by taking language files called ``sls`` files and compiling them
down to data instructions. These data instructions are then run through the
Idem runtime. These instructions inform Idem what routines to call to
enforce state or process data. It allows you to take a high level dataset
as your input, making the use of the system very easy.
Idem is built using two critical technologies: ``Python`` and ``POP``. Since Idem
is built on Python, it should be easy to extend for most software developers.
Extending Idem can be very easy because simple Python modules are all you need
to add capabilities!
The other technology, ``POP``, may be new to you. This is the truly secret sauce
behind Idem as well as a number of emerging exciting technologies. ``POP`` stands
for *Plugin Oriented Programming*. It is the brainchild of `the creator of
Salt <https://github.com/thatch45>`__ and a new way to write software. The ``POP``
system makes the creation of higher level paradigms like Idem possible, but also
provides the needed components to make Idem extensible and flexible.
For more information on ``POP``:
* `Intro to Plugin Oriented Programming (POP) <https://pop-book.readthedocs.io/en/latest/>`__
* `pop documentation <https://pop.readthedocs.io/en/latest/>`__
* `pop-awesome <https://gitlab.com/saltstack/pop/pop-awesome>`__
* `pop-create <https://gitlab.com/saltstack/pop/pop-create/>`__
Paradigms and Languages, This Sounds Complicated!
=================================================
Under the hood, it is complicated! The guts of a programming language are
complicated, but it is all there to make your life easier! You don't need to
understand complex computer science theory to benefit from Idem. You just need
to learn a few simple things and you can start making your life easier today!
Raw data
{
"_id": null,
"home_page": "https://docs.idemproject.io/idem/en/latest/index.html",
"name": "idem",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "VMware, Inc.",
"author_email": "idemproject@vmware.com",
"download_url": "https://files.pythonhosted.org/packages/d1/21/e19f0668df188b2cc95e5d838afb02f2d3cd0f9cc66c089becbddb8dcaaf/idem-25.0.1.tar.gz",
"platform": null,
"description": "====\nIdem\n====\n\n.. image:: https://img.shields.io/badge/made%20with-pop-teal\n :alt: Made with pop, a Python implementation of Plugin Oriented Programming\n :target: https://pop.readthedocs.io/\n\n.. image:: https://img.shields.io/badge/docs%20on-docs.idemproject.io-blue\n :alt: Documentation is published with Sphinx on docs.idemproject.io\n :target: https://docs.idemproject.io/idem/en/latest/index.html\n\n.. image:: https://img.shields.io/badge/made%20with-python-yellow\n :alt: Made with Python\n :target: https://www.python.org/\n\n.. rubric:: Transform configuration into idempotent action.\n\nAbout\n=====\n\nIdem is an idempotent dataflow programming language. It exposes stateful\nprogramming constructs that makes things like enforcing the state\nof an application, configuration, SaaS system, or others very\nsimple.\n\nSince Idem is a programming language, it can also be used for data\nprocessing and pipelining. Idem can be used not only to manage\nthe configuration of interfaces, but also for complex rule engines\nand processing files or workflows.\n\nIdem is a language to glue together management of all sorts of\ninterfaces. You can think of it like having idempotent\nscripts. Automation that can be run over and over again that\nenforces a specific state or process.\n\nIdem is unique in that it is built purely as a language. It\ncan be added to any type of management system out there and can\nbe applied in a cross platform way easily.\n\nIdem's functionality can also be expanded easily. Instead of storing\nall of the language components in a single place, the libraries\nused by Idem can be written independently and seamlessly merged\ninto Idem, just like a normal programming language!\n\n* `Idem Website <https://www.idemproject.io/>`__\n* `Idem Source Code <https://gitlab.com/vmware/idem/idem>`__\n* `Idem Project Docs <https://docs.idemproject.io/>`__\n\nWhat does Idempotent mean?\n==========================\n\nThe concept of Idempotent is simple! It just means that every time\nsomething is run, it always has the same end result regardless of the state\nof a system when the run starts!\n\nAt first glance this might seem useless, but think more deeply. Have you\never needed to make sure that something was set up in a consistent way? It\ncan be very nice to be able to enforce that setup without worrying about\nbreaking it. Or think about data pipelines, have you ever had input data\nthat needed to be processed? Idempotent systems allow for data to be\neasily processed in a consistent way, over and over again!\n\nHow Does This Language Work?\n============================\n\nIdem works by taking language files called ``sls`` files and compiling them\ndown to data instructions. These data instructions are then run through the\nIdem runtime. These instructions inform Idem what routines to call to\nenforce state or process data. It allows you to take a high level dataset\nas your input, making the use of the system very easy.\n\nIdem is built using two critical technologies: ``Python`` and ``POP``. Since Idem\nis built on Python, it should be easy to extend for most software developers.\nExtending Idem can be very easy because simple Python modules are all you need\nto add capabilities!\n\nThe other technology, ``POP``, may be new to you. This is the truly secret sauce\nbehind Idem as well as a number of emerging exciting technologies. ``POP`` stands\nfor *Plugin Oriented Programming*. It is the brainchild of `the creator of\nSalt <https://github.com/thatch45>`__ and a new way to write software. The ``POP``\nsystem makes the creation of higher level paradigms like Idem possible, but also\nprovides the needed components to make Idem extensible and flexible.\n\nFor more information on ``POP``:\n\n* `Intro to Plugin Oriented Programming (POP) <https://pop-book.readthedocs.io/en/latest/>`__\n* `pop documentation <https://pop.readthedocs.io/en/latest/>`__\n* `pop-awesome <https://gitlab.com/saltstack/pop/pop-awesome>`__\n* `pop-create <https://gitlab.com/saltstack/pop/pop-create/>`__\n\nParadigms and Languages, This Sounds Complicated!\n=================================================\n\nUnder the hood, it is complicated! The guts of a programming language are\ncomplicated, but it is all there to make your life easier! You don't need to\nunderstand complex computer science theory to benefit from Idem. You just need\nto learn a few simple things and you can start making your life easier today!\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "Transform configuration into idempotent action.",
"version": "25.0.1",
"project_urls": {
"Code": "https://gitlab.com/vmware/idem/idem",
"Homepage": "https://docs.idemproject.io/idem/en/latest/index.html",
"Issue tracker": "https://gitlab.com/vmware/idem/idem/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "pypi",
"digests": {
"blake2b_256": "afadb73335d36346970a14f2db948e6fcddd57d0cf316f4bfc3ea3d733fd875e",
"md5": "bbc44978696ad1c9454e18566f8a9bf9",
"sha256": "34becfdb8ca6925e64459b2dc906719c1e8bb3b1a50fb0213b461b2082bdaebd"
},
"downloads": -1,
"filename": "idem-25.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bbc44978696ad1c9454e18566f8a9bf9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 166186,
"upload_time": "2024-03-05T19:17:49",
"upload_time_iso_8601": "2024-03-05T19:17:49.930730Z",
"url": "https://files.pythonhosted.org/packages/af/ad/b73335d36346970a14f2db948e6fcddd57d0cf316f4bfc3ea3d733fd875e/idem-25.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "pypi",
"digests": {
"blake2b_256": "d121e19f0668df188b2cc95e5d838afb02f2d3cd0f9cc66c089becbddb8dcaaf",
"md5": "dd1ee42e79187e44c2194bc5ce530d76",
"sha256": "fef26518cbdd971bdbf918cd93b79d45b841685865c22a5ff812865caa454e3f"
},
"downloads": -1,
"filename": "idem-25.0.1.tar.gz",
"has_sig": false,
"md5_digest": "dd1ee42e79187e44c2194bc5ce530d76",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 118683,
"upload_time": "2024-03-05T19:17:52",
"upload_time_iso_8601": "2024-03-05T19:17:52.247463Z",
"url": "https://files.pythonhosted.org/packages/d1/21/e19f0668df188b2cc95e5d838afb02f2d3cd0f9cc66c089becbddb8dcaaf/idem-25.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-05 19:17:52",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "vmware",
"gitlab_project": "idem",
"lcname": "idem"
}