# Proposal: Business Applications Working Group

**URL:** <https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400>\
**Category:** announcements\
**Created:** [June 14, 2019, 5:01pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400 "2019-06-14T17:01:08Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/xvilka/32/5319_2.png) [@XVilka](https://internals.rust-lang.org/u/XVilka)\
**Post date:** [June 14, 2019, 5:01pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/1 "2019-06-14T17:01:08Z")

</div>

We can safely say that Rust being used in various application domains already, slowly improving the corresponding libraries. There is exist quite important domain, which is often overlooked, but of the immense importance - finances, taxes and business logic applications. In fact, this is precisely where Rust will shine with its predictability, speed, and openness to the feedback. I asked a couple of times if someone actually use it in these domains, and you can see [a few examples](https://users.rust-lang.org/t/rust-and-business-logic/28234/3) of the traits being developed (and often abandoned) for such applications. And the business logic, taxation computations, financial transactions handling is what makes our world economy going, essentially preventing crashing everything to pieces. This kingdom totally ruled by COBOL and Java. Obviously using Rust would be a total level (or even levels) up. So hereby, I propose to create the Business Applications Working Group for coordinating such efforts. It might be a low traffic one, but at least people would work together on building the relevant crates ecosystem, and compiler features if required.

Relevant proposal - [Kickstarting Database Working Group](https://internals.rust-lang.org/t/kickstarting-a-database-wg/9696)

Examples from Java:

- [https://github.com/finmath](https://github.com/finmath)
- [https://javamoney.github.io/](https://javamoney.github.io/)
- [https://github.com/topics/accounting?l=java](https://github.com/topics/accounting?l=java)
- [https://github.com/prowide/prowide-core](https://github.com/prowide/prowide-core) (SWIFT transaction system library)
- [https://lakshmidrip.github.io/DRIP](https://lakshmidrip.github.io/DRIP) (fixed income analytics)
- [https://bookkeeper.apache.org/](https://bookkeeper.apache.org/)
- [Awesome Quant Finances List](https://github.com/wilsonfreitas/awesome-quant)
- [Open Source ERP Systems List](https://fosspost.org/lists/open-source-erp)

---

<div class="post-metadata">

**Author:** ![vorner](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/vorner/32/3310_2.png) [@vorner](https://internals.rust-lang.org/u/vorner)\
**Post date:** [June 15, 2019, 6:43am UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/2 "2019-06-15T06:43:47Z")

</div>

Hello

I’m not sure I fully understand the scope or focus (or maybe the „Business“ is just used differently). So I’d like to ask a bit more specifically.

Are you mostly interested in finances here, or _whatever_ a bigger company might need on the inside which is _often_ finance-related but not necessarily? I’m asking because I have written this [spirit](https://github.com/vorner/spirit) family of libraries. It is aimed at easing up developing of services (which also these internal applications are) like helping with configuration, logging, etc. My motivation for it was actually implementing an internal service and getting somewhat up to the level of how other java services are able to log, provide metrics, …

Would that be in scope or not?

Either way, while I feel like getting into this sector will be somewhat tricky, 👍 on the effort.

---

<div class="post-metadata">

**Author:** ![orthoxerox](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/orthoxerox/32/5531_2.png) [@orthoxerox](https://internals.rust-lang.org/u/orthoxerox)\
**Post date:** [June 15, 2019, 9:38am UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/3 "2019-06-15T09:38:49Z")

</div>

As someone who has majored in Business SE and writes business applications for a living, here’s what a PL good for writing business applications must have:

- decimal math
- flexible rounding rules (not all countries use banker’s rounding)
- lots and lots of integration libraries

Integration is incredibly important, since many companies have layers and layers of legacy applications utilizing 20-year old protocols. You can’t write a useful business application that can only do HTTP/2 and JSON or Protobuf.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/xvilka/32/5319_2.png) [@XVilka](https://internals.rust-lang.org/u/XVilka)\
**Post date:** [June 15, 2019, 1:03pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/4 "2019-06-15T13:03:09Z")

</div>

@vorner yes, I meant the “Business” in a broader term, it is just I have more experience with finances there, also quant software is easier to find open sourced. So depending on the details the service management can be in the scope as well.

One big example is Jane Street who promotes using OCaml and uses it internally almost everywhere. And they claim it was a part of their huge success. I have a feeling, that Rust can be a part of a similar recipe as well if cooked well. There is another good example - [Imandra](https://www.imandra.ai/), aiming to bring formal verification to the business core of finances, governance, and even web-development. They also base their framework and tools on top of OCaml.

@orthoxerox yes, I mentioned in the post in users community three crates for dealing with decimal numbers: [decimal](https://crates.io/crates/decimal/), [rust-decimal](https://crates.io/crates/rust-decimal), and [bigdecimal](https://crates.io/crates/bigdecimal). The second and third point are indeed uncovered. So we should work on improving databases access, reiterate recent move to make a Rust alternative to Elasticsearch, improving the interfaces with R, Julia, Excel, various interfaces, like SWIFT, etc.

---

<div class="post-metadata">

**Author:** ![gilescope](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/gilescope/32/2798_2.png) [@gilescope](https://internals.rust-lang.org/u/gilescope)\
**Post date:** [June 19, 2019, 2:17pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/5 "2019-06-19T14:17:49Z")

</div>

I wonder if ‘Business’ means ‘Enterprise’? For example making sure we have first class support for NTLM windows authentication - windows domains are pretty common. An even more specific finance working group might be good later on, but I think there’s a lot of polish still needed to reduce the barriers to entry of using Rust in a large company - an enterprise working group would great.

---

<div class="post-metadata">

**Author:** ![gilescope](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/gilescope/32/2798_2.png) [@gilescope](https://internals.rust-lang.org/u/gilescope)\
**Post date:** [June 19, 2019, 2:36pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/6 "2019-06-19T14:36:43Z")

</div>

But if you mean Business as ‘Finance’ I know a handful of quants that are keen on Rust and might want to push forward the status quo. From a finance perspective having a rust version of ISDA’s CDM ( [https://www.isda.org/2018/11/22/isda-cdm-factsheet/](https://www.isda.org/2018/11/22/isda-cdm-factsheet/) ) would be interesting as well as FIX parsers…

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/xvilka/32/5319_2.png) [@XVilka](https://internals.rust-lang.org/u/XVilka)\
**Post date:** [June 19, 2019, 2:48pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/7 "2019-06-19T14:48:57Z")

</div>

Yes, as an Enterprise, but Finances are a part of Enterprise, albeit more flexible and fluid.

---

<div class="post-metadata">

**Author:** ![ivanceras](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/ivanceras/32/2879_2.png) [@ivanceras](https://internals.rust-lang.org/u/ivanceras)\
**Post date:** [June 28, 2019, 9:33am UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/8 "2019-06-28T09:33:03Z")

</div>

I do have a project that lay down the ground work of the backend for enterprise application.

> **[ivanceras/diwata](https://github.com/ivanceras/diwata)**
>
> A user-friendly database interface. Contribute to ivanceras/diwata development by creating an account on GitHub.

The vision of this project would be to become a core system in an ERP, which is mostly just centered around a database. It would be great if I can get some people to look at the project and hopefully receive some contributions.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/xvilka/32/5319_2.png) [@XVilka](https://internals.rust-lang.org/u/XVilka)\
**Post date:** [June 28, 2019, 5:16pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/9 "2019-06-28T17:16:23Z")

</div>

I suggest we can create an organization on GitHub with repositories ‘meta’ - for discussion and proposals, and libraries themselves. For example decimals, FIX parser, something else, can fit perfectly into this, maybe some Java and COBOL integration stuff, Excel integration, etc. It will improve the visibility of the respective projects, at the very least.

---

<div class="post-metadata">

**Author:** ![hwchen](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/hwchen/32/1550_2.png) [@hwchen](https://internals.rust-lang.org/u/hwchen)\
**Post date:** [June 29, 2019, 4:42pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/10 "2019-06-29T16:42:15Z")

</div>

I’d be interested in participating, although I don’t have bandwidth to push this forward. For me, this most interesting parts are robust integrations for things like excel and ms sql server.

Getting a repo up for discussion would be great.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [September 27, 2019, 4:45pm UTC](https://internals.rust-lang.org/t/proposal-business-applications-working-group/10400/11 "2019-09-27T16:45:06Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
