Skip to content

[CAS] Add LLVMCAS library with InMemoryCAS implementation#114096

Merged
cachemeifyoucan merged 10 commits intomainfrom
users/cachemeifyoucan/spr/cas-add-llvmcas-library-with-inmemorycas-implementation
Aug 12, 2025
Merged

[CAS] Add LLVMCAS library with InMemoryCAS implementation#114096
cachemeifyoucan merged 10 commits intomainfrom
users/cachemeifyoucan/spr/cas-add-llvmcas-library-with-inmemorycas-implementation

Conversation

@cachemeifyoucan
Copy link
Copy Markdown
Collaborator

Add llvm::cas::ObjectStore abstraction and InMemoryCAS as a in-memory
CAS object store implementation.

The ObjectStore models its objects as:

  • Content: An array of bytes for the data to be stored.
  • Refs: An array of references to other objects in the ObjectStore.
    And each CAS Object can be idenfied with an unqine ID/Hash.

ObjectStore supports following general action:

  • Expected store(Content, ArrayRef)
  • Expected get(ID)

It also introduces following types to interact with a CAS ObjectStore:

  • CASID: Hash representation for an CAS Objects with its context to help
    print/compare CASIDs.
  • ObjectRef: A light-weight ref for an object in the ObjectStore. It is
    implementation defined so it can be optimized for
    read/store/references depending on the implementation.
  • ObjectProxy: A proxy for the users of CAS to interact with the data
    inside CAS Object. It bundles a ObjectHandle and an ObjectStore
    instance.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants