NineAnimatorCore is a framework for building NineAnimator parsers using JavaScript. This PR is part of our move from a completely native system to a hybrid architecture, which will allow for easier maintenance and distribution of the app. Below are some benefits of this new architecture.
Development - NACore bundles will be using JavaScript for source and server parsers, therefore allowing more developers to contribute to the project;
Distribution - NACore allows NineAnimator to update the parsers by downloading a new bundle, avoiding the need for making new releases.
NineAnimatorCore will be worked on in a separate repository from now on, as part of our effort to modularize the app.
Core Components
NineAnimatorCore Engine (NACoreEngine): engine for running the JavaScript environment
[x] Basic JS virtual machine and contexts management & maintenance
[x] Basic type conversions (most are handled by JSValue)
[ ] Custom types & conversions
[x] NineAnimatorPromise and JavaScript Promise
[x] AnimeLink, EpisodeLink
[x] Anime, Episode
[x] PlaybackMedia
[ ] NineAnimatorError custom error types
[ ] ContentProvider interface for paged lists of links
[ ] TrackingContext?
[x] Network requests through NineAnimator.fetch (WIP)
[ ] Logging APIs
NineAnimatorCore BaseSource (NACoreBaseSource): implements the Source/PromiseSource protocol. Bridging to existing source systems.
[ ] JavaScript BaseSource specifications
[ ] Source method bridges
NineAnimatorCore VideoProviderParser (NACoreMediaProviderParser): implements the VideoProviderParser protocol. Bridging to existing server parser systems.
[ ] JavaScript VideoProviderParser specifications
[ ] Parser method bridges
[ ] Parser registry bridges
NineAnimatorCore Bundles: zip container structures for code/assets delivery
[ ] Bundle structure specification (for code and resources)
NineAnimatorCore is a framework for building NineAnimator parsers using JavaScript. This PR is part of our move from a completely native system to a hybrid architecture, which will allow for easier maintenance and distribution of the app. Below are some benefits of this new architecture.
NineAnimatorCore will be worked on in a separate repository from now on, as part of our effort to modularize the app.
Core Components
NACoreEngine
): engine for running the JavaScript environmentJSValue
)NineAnimatorPromise
and JavaScriptPromise
AnimeLink
,EpisodeLink
Anime
,Episode
PlaybackMedia
NineAnimatorError
custom error typesContentProvider
interface for paged lists of linksTrackingContext
?NineAnimator.fetch
(WIP)NACoreBaseSource
): implements theSource
/PromiseSource
protocol. Bridging to existing source systems.BaseSource
specificationsNACoreMediaProviderParser
): implements theVideoProviderParser
protocol. Bridging to existing server parser systems.VideoProviderParser
specificationsNineAnimatorCloud
integrationNACoreBundleLoader
bundle loading implementation