Skip to content

Package architecture decisions for a lightweight core? #449

Description

@mpizenberg

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions