# Using ions offline

**URL:** <https://forum.datomic.com/t/using-ions-offline/726>\
**Category:** Datomic Cloud\
**Created:** [December 8, 2018, 5:31pm UTC](https://forum.datomic.com/t/using-ions-offline/726 "2018-12-08T17:31:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![timeyyy](https://avatars.discourse-cdn.com/v4/letter/t/ecb155/32.png) [@timeyyy](https://forum.datomic.com/u/timeyyy)\
**Post date:** [December 8, 2018, 5:31pm UTC](https://forum.datomic.com/t/using-ions-offline/726/1 "2018-12-08T17:31:59Z")

</div>

As far as I understand an internet connection is required to use datomic ions. I like the idea of being able to develop and run tests etc offline.

Localstack [https://github.com/localstack/localstack](https://github.com/localstack/localstack) can be used to run aws services locally. Would it be feasible to hack a script that simulates a deployment (setting up the lambda functions)? How else could one go about using ions locally?

---

<div class="post-metadata">

**Author:** ![marshall](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/marshall/32/48_2.png) [@marshall](https://forum.datomic.com/u/marshall)\
**Post date:** [December 10, 2018, 4:05pm UTC](https://forum.datomic.com/t/using-ions-offline/726/2 "2018-12-10T16:05:46Z")

</div>

Ions can be developed and tested locally. Specifically, as indicated here: [https://docs.datomic.com/cloud/ions/ions-reference.html#signatures](https://docs.datomic.com/cloud/ions/ions-reference.html#signatures) Ions are just plain functions.

When you specify the `:server-type :ion` in your Datomic configuration map ([https://docs.datomic.com/cloud/ions/ions-reference.html#server-type-ion](https://docs.datomic.com/cloud/ions/ions-reference.html#server-type-ion)) the client library will allow you to use the local SOCKS proxy to connect to the database (if necessary), but will use a local implementation once deployed.

If your Ion doesn’t require access to the database and/or any other network-requiring features (i.e. other AWS services), you should be able to test it locally as you would any other function.

---

<div class="post-metadata">

**Author:** ![timeyyy](https://avatars.discourse-cdn.com/v4/letter/t/ecb155/32.png) [@timeyyy](https://forum.datomic.com/u/timeyyy)\
**Post date:** [January 11, 2019, 6:09pm UTC](https://forum.datomic.com/t/using-ions-offline/726/3 "2019-01-11T18:09:32Z")

</div>

> the client library will allow you to use the local SOCKS proxy to connect to the database (if necessary),

Can this database be one i’m running on my machine?

---

<div class="post-metadata">

**Author:** ![marshall](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/marshall/32/48_2.png) [@marshall](https://forum.datomic.com/u/marshall)\
**Post date:** [January 11, 2019, 6:28pm UTC](https://forum.datomic.com/t/using-ions-offline/726/4 "2019-01-11T18:28:39Z")

</div>

Ions require Datomic Cloud, which only runs on AWS.

---

<div class="post-metadata">

**Author:** ![kenny](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/kenny/32/529_2.png) [@kenny](https://forum.datomic.com/u/kenny)\
**Post date:** [January 11, 2019, 11:18pm UTC](https://forum.datomic.com/t/using-ions-offline/726/5 "2019-01-11T23:18:31Z")

</div>

Hi. We had a requirement to test against offline Datomic DBs but wanted to deploy using Datomic Cloud. We wrote [this](https://github.com/ComputeSoftware/datomic-client-memdb) small library that lets you do that. It wraps the Datomic free peer library in the Datomic Client protocols. We’ve been using it successfully for a while now.

---

<div class="post-metadata">

**Author:** ![timeyyy](https://avatars.discourse-cdn.com/v4/letter/t/ecb155/32.png) [@timeyyy](https://forum.datomic.com/u/timeyyy)\
**Post date:** [January 13, 2019, 4:58pm UTC](https://forum.datomic.com/t/using-ions-offline/726/6 "2019-01-13T16:58:59Z")

</div>

Nice Kenny 🙂
