{"id":19500583,"url":"https://github.com/naturalintelligence/nimn-spec","last_synced_at":"2025-04-25T23:30:30.541Z","repository":{"id":66140676,"uuid":"122697386","full_name":"NaturalIntelligence/nimn-spec","owner":"NaturalIntelligence","description":"Just Data. Save up to 85% network bandwidth and storage.","archived":false,"fork":false,"pushed_at":"2023-10-14T11:51:21.000Z","size":66,"stargazers_count":89,"open_issues_count":0,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-04T04:51:09.603Z","etag":null,"topics":["data-format","json","nimn","xml"],"latest_commit_sha":null,"homepage":"https://solothought.com/nimn/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NaturalIntelligence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"NaturalIntelligence","custom":["https://paypal.me/naturalintelligence"]}},"created_at":"2018-02-24T03:01:29.000Z","updated_at":"2024-12-14T18:07:35.000Z","dependencies_parsed_at":"2024-01-23T21:25:03.771Z","dependency_job_id":"ac50f677-6cc3-42ca-938b-c03048615c5a","html_url":"https://github.com/NaturalIntelligence/nimn-spec","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalIntelligence%2Fnimn-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalIntelligence%2Fnimn-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalIntelligence%2Fnimn-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalIntelligence%2Fnimn-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NaturalIntelligence","download_url":"https://codeload.github.com/NaturalIntelligence/nimn-spec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250912660,"owners_count":21506865,"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":["data-format","json","nimn","xml"],"created_at":"2024-11-10T22:08:58.791Z","updated_at":"2025-04-25T23:30:30.286Z","avatar_url":"https://github.com/NaturalIntelligence.png","language":null,"readme":"# निम्न (Nimn)\n\nYou'll find an overview of Nimn format on this page. Please read [Specification](/SPEC.md) for more detail. Or visit [site]([https://amitkumargupta.work/nimn/](https://github.com/NaturalIntelligence/nimn-spec)) to try yourself how much data it can save.\n\n\u003e Version 2 is in mind. Need time to develope it\n\n## About\n\u003e Nimn (निम्न) word is taken from Sanskrit language which means *very less*.\n\nWhen we communicate between servers or clients, half of the bandwidth is utilized by metadata. *Nimn data is dense form of data where field level information is kept separate from actual data.*  In brief, it can be understood as **schema aware compressed** form.\n\nInitial version of Nimn data format was very much similar to Avro. However, to speed up the processing there are some changed done. The aim of Nimn data format is fast encoding, decoding, and search in data. No encoding technique is applied on field's value but it's structure to speed up searching. Hence encoded message has more bytes than Protobuf, Thrift, or Avro. However difference is not minimal. You can use addons for field level compression which will reduce the size further but you'll have to compromise with searching speed.\n\n## Benefits and loss\n\n### Benefits\n\n* Size of the data is reduced by more than 80% in comparison of XML. Hence less disk space and network bandwidth is required.\n* Defined schema can speed up processing of data.\n\n### Loss\n\n* Updating schema everytime you change object structure.\n* Maintaining schema definition when you want to support all older versions of data structure.\n* Readability\n\n### MIME type\n\n[application/vnd.nimn](https://www.iana.org/assignments/media-types/application/vnd.nimn) , application/nimn \n\n### Comparision with other forms of data representation\n\n![comparision of data formats](dataformats.png)\n\n#### XML (806 bytes)\n```xml\n\u003cany_name\u003e\n    \u003cperson\u003e\n        \u003cphone\u003e+122233344550\u003c/phone\u003e\n        \u003cname\u003eJack\u003c/name\u003e\n        \u003cphone\u003e+122233344551\u003c/phone\u003e\n        \u003cage\u003e33\u003c/age\u003e\n        \u003cmarried\u003eYes\u003c/married\u003e\n        \u003cbirthday\u003eWed, 28 Mar 1979 12:13:14 +0300\u003c/birthday\u003e\n        \u003caddress\u003e\n            \u003ccity\u003eNew York\u003c/city\u003e\n            \u003cstreet\u003ePark Ave\u003c/street\u003e\n            \u003cbuildingNo\u003e1\u003c/buildingNo\u003e\n            \u003cflatNo\u003e1\u003c/flatNo\u003e\n        \u003c/address\u003e\n        \u003caddress\u003e\n            \u003ccity\u003eBoston\u003c/city\u003e\n            \u003cstreet\u003eCentre St\u003c/street\u003e\n            \u003cbuildingNo\u003e33\u003c/buildingNo\u003e\n            \u003cflatNo\u003e24\u003c/flatNo\u003e\n        \u003c/address\u003e\n    \u003c/person\u003e\n    \u003cperson\u003e\n        \u003cphone\u003e+122233344553\u003c/phone\u003e\n        \u003cname\u003eBoris\u003c/name\u003e\n        \u003cphone\u003e+122233344554\u003c/phone\u003e\n        \u003cage\u003e34\u003c/age\u003e\n        \u003cmarried\u003eYes\u003c/married\u003e\n        \u003cbirthday\u003eMon, 31 Aug 1970 02:03:04 +0300\u003c/birthday\u003e\n        \u003caddress\u003e\n            \u003ccity\u003eMoscow\u003c/city\u003e\n            \u003cstreet\u003eKahovka\u003c/street\u003e\n            \u003cbuildingNo\u003e1\u003c/buildingNo\u003e\n            \u003cflatNo\u003e2\u003c/flatNo\u003e\n        \u003c/address\u003e\n        \u003caddress\u003e\n            \u003ccity\u003eTula\u003c/city\u003e\n            \u003cstreet\u003eLenina\u003c/street\u003e\n            \u003cbuildingNo\u003e3\u003c/buildingNo\u003e\n            \u003cflatNo\u003e78\u003c/flatNo\u003e\n        \u003c/address\u003e\n    \u003c/person\u003e\n\u003c/any_name\u003e\n```\n\n#### JSON (580 bytes)\n```json\n{\n    \"any_name\": {\n        \"person\": [\n            {\n                \"phone\": [\n                    122233344550,\n                    122233344551\n                ],\n                \"name\": \"Jack\",\n                \"age\": 33,\n                \"married\": \"Yes\",\n                \"birthday\": \"Wed, 28 Mar 1979 12:13:14 +0300\",\n                \"address\": [\n                    {\n                        \"city\": \"New York\",\n                        \"street\": \"Park Ave\",\n                        \"buildingNo\": 1,\n                        \"flatNo\": 1\n                    },\n                    {\n                        \"city\": \"Boston\",\n                        \"street\": \"Centre St\",\n                        \"buildingNo\": 33,\n                        \"flatNo\": 24\n                    }\n                ]\n            },\n            {\n                \"phone\": [\n                    122233344553,\n                    122233344554\n                ],\n                \"name\": \"Boris\",\n                \"age\": 34,\n                \"married\": \"Yes\",\n                \"birthday\": \"Mon, 31 Aug 1970 02:03:04 +0300\",\n                \"address\": [\n                    {\n                        \"city\": \"Moscow\",\n                        \"street\": \"Kahovka\",\n                        \"buildingNo\": 1,\n                        \"flatNo\": 2\n                    },\n                    {\n                        \"city\": \"Tula\",\n                        \"street\": \"Lenina\",\n                        \"buildingNo\": 3,\n                        \"flatNo\": 78\n                    }\n                ]\n            }\n        ]\n    }\n}\n```\n\n#### MESSAGE PACK (426 bytes)\n```\n81 a8 61 6e 79 5f 6e 61 6d 65 81 a6 70 65 72 73 6f 6e 92 86 a5 70 68 6f 6e 65 92 cf 00 00 00 1c 75 ac d2 26 cf 00 00 00 1c 75 ac d2 27 a4 6e 61 6d 65 a4 4a 61 63 6b a3 61 67 65 21 a7 6d 61 72 72 69 65 64 a3 59 65 73 a8 62 69 72 74 68 64 61 79 bf 57 65 64 2c 20 32 38 20 4d 61 72 20 31 39 37 39 20 31 32 3a 31 33 3a 31 34 20 2b 30 33 30 30 a7 61 64 64 72 65 73 73 92 84 a4 63 69 74 79 a8 4e 65 77 20 59 6f 72 6b a6 73 74 72 65 65 74 a8 50 61 72 6b 20 41 76 65 aa 62 75 69 6c 64 69 6e 67 4e 6f 01 a6 66 6c 61 74 4e 6f 01 84 a4 63 69 74 79 a6 42 6f 73 74 6f 6e a6 73 74 72 65 65 74 a9 43 65 6e 74 72 65 20 53 74 aa 62 75 69 6c 64 69 6e 67 4e 6f 21 a6 66 6c 61 74 4e 6f 18 86 a5 70 68 6f 6e 65 92 cf 00 00 00 1c 75 ac d2 29 cf 00 00 00 1c 75 ac d2 2a a4 6e 61 6d 65 a5 42 6f 72 69 73 a3 61 67 65 22 a7 6d 61 72 72 69 65 64 a3 59 65 73 a8 62 69 72 74 68 64 61 79 bf 4d 6f 6e 2c 20 33 31 20 41 75 67 20 31 39 37 30 20 30 32 3a 30 33 3a 30 34 20 2b 30 33 30 30 a7 61 64 64 72 65 73 73 92 84 a4 63 69 74 79 a6 4d 6f 73 63 6f 77 a6 73 74 72 65 65 74 a7 4b 61 68 6f 76 6b 61 aa 62 75 69 6c 64 69 6e 67 4e 6f 01 a6 66 6c 61 74 4e 6f 02 84 a4 63 69 74 79 a4 54 75 6c 61 a6 73 74 72 65 65 74 a6 4c 65 6e 69 6e 61 aa 62 75 69 6c 64 69 6e 67 4e 6f 03 a6 66 6c 61 74 4e 6f 4e\n```\nor\n```\n��any_name��person���phone��\u001cu��\u0026�\u001cu��'�name�Jack�age!�married�Yes�birthday�Wed, 28 Mar 1979 12:13:14 +0300�address���city�New York�street�Park Ave�buildingNo\u0001�flatNo\u0001��city�Boston�street�Centre St�buildingNo!�flatNo\u0018��phone��\u001cu��)�\u001cu��*�name�Boris�age\"�married�Yes�birthday�Mon, 31 Aug 1970 02:03:04 +0300�address���city�Moscow�street�Kahovka�buildingNo\u0001�flatNo\u0002��city�Tula�street�Lenina�buildingNo\u0003�flatNoN\n```\n#### NIMN (232 bytes)\n```\nÆÆÇÆÇ122233344550º122233344551ÅJackº33ºYesºWed, 28 Mar 1979 12:13:14 +0300ÇÆNew YorkºPark Aveº1º1ÆBostonºCentre Stº33º24ÅÆÇ122233344553º122233344554ÅBorisº34ºYesºMon, 31 Aug 1970 02:03:04 +0300ÇÆMoscowºKahovkaº1º2ÆTulaºLeninaº3º78ÅÅ\n```\n#### NIMN with date compression (190 bytes)\n```\nÆÆÇÆÇ122233344550º122233344551ÅJackº33ºYesº\u0013OMs9demÇÆNew YorkºPark Aveº1º1ÆBostonºCentre Stº33º24ÅÆÇ122233344553º122233344554ÅBorisº34ºYesº\u0013Faun34mÇÆMoscowºKahovkaº1º2ÆTulaºLeninaº3º78ÅÅ\n```\nor\n```\n�����122233344550�122233344551�Jack�33�Yes�\u0013OMs9dem��New York�Park Ave�1�1�Boston�Centre St�33�24���122233344553�122233344554�Boris�34�Yes�\u0013Faun34m��Moscow�Kahovka�1�2�Tula�Lenina�3�78��\n```\n\n## Contribution\nWe need your expert advice, and contribution to grow nimn (निम्न) so that it can support all major languages. Please join the [us](https://github.com/NaturalIntelligence) on github to support it. And ask your friends, and colleagues to give it a try. It can not only save bandwidth but speed up communication, search and much more.\n\n## Implementations\n\nPlease refer following implementations in various languages\n\n* [Node / Java Script](https://github.com/NaturalIntelligence/nimnjs)\n","funding_links":["https://github.com/sponsors/NaturalIntelligence","https://paypal.me/naturalintelligence"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalintelligence%2Fnimn-spec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaturalintelligence%2Fnimn-spec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalintelligence%2Fnimn-spec/lists"}