I’m currently using evolution-sdk in an application (https://github.com/mpizenberg/Tessera) and I’m trying to split out of the app the re-usable core parts for other applications implementing the cip-179 (there is at least one other). This includes types and pure functions. With all side effects moved outside of the cip-179 core.
It would be really valuable for this initiative to be able to re-use cardano types and important core functions, such as cbor codec and others. But without having the heavy Effect sub-dependencies.
Currently, depending on evolution sdk, pulls in 60MB of Effect ecosystem dependencies (@effect/cluster, @effect/sql, @effect/rpc, @effect/workflow, @effect/platform-node, ...). I don’t know the evolution sdk codebase, but is it possible that all of these dependencies are only needed for the IO parts, like the providers implementations and such?
It’s already good that tree shaking get rids of all that at compilation time, but I’m still always wanting to minimize the dependency surface, both for efficiency and for op-sec reasons. Let me know your thoughts about this.
I’m currently using evolution-sdk in an application (https://github.com/mpizenberg/Tessera) and I’m trying to split out of the app the re-usable core parts for other applications implementing the cip-179 (there is at least one other). This includes types and pure functions. With all side effects moved outside of the cip-179 core.
It would be really valuable for this initiative to be able to re-use cardano types and important core functions, such as cbor codec and others. But without having the heavy Effect sub-dependencies.
Currently, depending on evolution sdk, pulls in 60MB of Effect ecosystem dependencies (@effect/cluster, @effect/sql, @effect/rpc, @effect/workflow, @effect/platform-node, ...). I don’t know the evolution sdk codebase, but is it possible that all of these dependencies are only needed for the IO parts, like the providers implementations and such?
It’s already good that tree shaking get rids of all that at compilation time, but I’m still always wanting to minimize the dependency surface, both for efficiency and for op-sec reasons. Let me know your thoughts about this.