Skip to main content

Transform configuration into idempotent action.

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Documentation is published with Sphinx on docs.idemproject.io Made with Python

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!

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 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:

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!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idem-24.1.1.tar.gz (116.6 kB view details)

Uploaded Source

Built Distribution

idem-24.1.1-py3-none-any.whl (163.1 kB view details)

Uploaded Python 3

File details

Details for the file idem-24.1.1.tar.gz.

File metadata

  • Download URL: idem-24.1.1.tar.gz
  • Upload date:
  • Size: 116.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/41.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.5 tqdm/4.66.1 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.9.18

File hashes

Hashes for idem-24.1.1.tar.gz
Algorithm Hash digest
SHA256 2e11df6cb4ae7b27446c8958beb048aa5c6ca332ec4b1c5aec4683bacb0a7d9f
MD5 e6443b510a1dfa0d38c24bcd48a7618c
BLAKE2b-256 6bb7bbcb6ba2336601d55401c174677a494048b92681f40247d73c52a5e6de03

See more details on using hashes here.

File details

Details for the file idem-24.1.1-py3-none-any.whl.

File metadata

  • Download URL: idem-24.1.1-py3-none-any.whl
  • Upload date:
  • Size: 163.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/41.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.5 tqdm/4.66.1 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.9.18

File hashes

Hashes for idem-24.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 288db75d6691d35ff6c846ad803176cc81676756deb2e3e5a8c79e73cd78ac6f
MD5 cb12240eefb40e466270233db805acfa
BLAKE2b-256 8dcf96b9e1af8ba067417cc541a74c7dc8491a8782fc8550c7d5107474cbde4f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page